c++ 分布式服务器 1
链接:https://pan.baidu.com/s/1VI749ucHLPSh71Q4gqoA9g 提取码:nxal
- Nginx 服务器
- 能处理静态请求 -> html, jpg
- 动态请求无法处理
- 服务器集群之后, 每台服务器上部署的内容必须相同
- fastCGI
- 帮助服务器处理动态请求
-
- nginx负载均衡反向代理服务器
- 客户端并不能直接访问web服务器, 直接访问到的是反向代理服务器
- 客户端将请求发送给反向代理服务器, 反向代理将客户端请求转发给web服务器
- 客户端----反向服务器(将客户端的请求分发给服务器集群)--服务器
- nginx负载均衡反向代理服务器
- mySql-- 关系型数据库
- 存储用户的数据信息
- 存储文件属性信息
- redis--非关系型数据库
- 存储经常在mySql读取的数据
- FastDFS--分布式文件系统
- 存储大文件,上传下载
FastDFS框架结构:A控制BCD BCD存储文件
FastDFS的三个角色:
1.追踪器(tracker)----管理者 A
2.存储节点----存储文件 storage BCD
3.客户端 文件上传下载
FastFDS三个角色的关系:
1.追踪器--最先启动
2.存储节点--第二个启动,启动之后单独开一个线程
a.向追踪器汇报当前存储节点剩余内存
b.汇报数据的同步状况
c.汇报数据的下载次数
3.客户端--最后启动
上传:连接追踪器,查询各个存储节点的空间大小
追踪器将符合的存储节点的ip,端口发送给客户端
客户端根据ip,端口与存储节点连接,并发送文件内容
下载:连接追踪器,查询文件在那个存储节点
追踪器将存储节点的IP,端口发送给客户端
客户端根据IP,端口与存储节点连接,下载文件
FastDFS集群:
- 追踪器集群
- 为什么集群?
- 避免单点故障
- 多个Tracker如何工作?
- 轮询(循环)工作
- 如何实现集群?
- 修改配置文件
- 为什么集群?
- 存储节点集群
- fastDFS管理存储节点的方式?
- 通过分组的方式完成的
- 集群方式(扩容方式)
- 横向扩容 - 增加容量
- 添加一台新的主机 -> 容量增加了
- 假设当前有两个组: group1, group2
- 需要添加一个新的分组 -> group3
- 新主机属于第三组
- 需要添加一个新的分组 -> group3
- 不同组的主机之间不需要通信
- 纵向扩容 - 数据备份
- 假设当前有两个组: group1, group2
- 将新的主机放到现有的组中
- 每个组的主机数量从1 -> N
- 这n台主机的关系就是相互备份的关系
- 同一个组中的主机需要通信
- 每组的容量 == 容量最小的这台主机
- 假设当前有两个组: group1, group2
- 横向扩容 - 增加容量
- 如何实现?
- 通过修改配置文件可实现
- fastDFS管理存储节点的方式?