c++ 分布式服务器 1

链接:https://pan.baidu.com/s/1VI749ucHLPSh71Q4gqoA9g 提取码:nxal

c++ 分布式服务器 1_第1张图片

  • Nginx 服务器
    • 能处理静态请求 -> html, jpg
    • 动态请求无法处理
    • 服务器集群之后, 每台服务器上部署的内容必须相同
  • fastCGI
    • 帮助服务器处理动态请求
    • nginx负载均衡反向代理服务器
      • 客户端并不能直接访问web服务器, 直接访问到的是反向代理服务器
      • 客户端将请求发送给反向代理服务器, 反向代理将客户端请求转发给web服务器
      • 客户端----反向服务器(将客户端的请求分发给服务器集群)--服务器
  • mySql-- 关系型数据库
    • 存储用户的数据信息
    • 存储文件属性信息
  • redis--非关系型数据库
    • 存储经常在mySql读取的数据
  • FastDFS--分布式文件系统
    • 存储大文件,上传下载

FastDFS框架结构:A控制BCD  BCD存储文件

c++ 分布式服务器 1_第2张图片

FastDFS的三个角色:

        1.追踪器(tracker)----管理者   A

        2.存储节点----存储文件 storage  BCD

        3.客户端  文件上传下载

FastFDS三个角色的关系:

        1.追踪器--最先启动

        2.存储节点--第二个启动,启动之后单独开一个线程

                a.向追踪器汇报当前存储节点剩余内存

                b.汇报数据的同步状况

                c.汇报数据的下载次数

        3.客户端--最后启动

                上传:连接追踪器,查询各个存储节点的空间大小

                           追踪器将符合的存储节点的ip,端口发送给客户端

                           客户端根据ip,端口与存储节点连接,并发送文件内容

                下载:连接追踪器,查询文件在那个存储节点

                           追踪器将存储节点的IP,端口发送给客户端

                           客户端根据IP,端口与存储节点连接,下载文件

c++ 分布式服务器 1_第3张图片

c++ 分布式服务器 1_第4张图片

FastDFS集群:

c++ 分布式服务器 1_第5张图片

  1. 追踪器集群
    • 为什么集群?
      • 避免单点故障
    • 多个Tracker如何工作?
      • 轮询(循环)工作
    • 如何实现集群?
      • 修改配置文件
  2. 存储节点集群
    • fastDFS管理存储节点的方式?
      • 通过分组的方式完成的
    • 集群方式(扩容方式)
      • 横向扩容 - 增加容量
        • 添加一台新的主机 -> 容量增加了
        • 假设当前有两个组: group1, group2
          • 需要添加一个新的分组 -> group3
            • 新主机属于第三组
        • 不同组的主机之间不需要通信
      • 纵向扩容 - 数据备份
        • 假设当前有两个组: group1, group2
          • 将新的主机放到现有的组中
          • 每个组的主机数量从1 -> N
            • 这n台主机的关系就是相互备份的关系
            • 同一个组中的主机需要通信
            • 每组的容量 == 容量最小的这台主机
    • 如何实现?
      • 通过修改配置文件可实现

你可能感兴趣的:(c++,分布式,开发语言)