当前位置: 首页 > article >正文

c++ 分布式服务器 1

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

  • Nginx 服务器
    • 能处理静态请求 -> html, jpg
    • 动态请求无法处理
    • 服务器集群之后, 每台服务器上部署的内容必须相同
  • fastCGI
    • 帮助服务器处理动态请求
    • nginx负载均衡反向代理服务器
      • 客户端并不能直接访问web服务器, 直接访问到的是反向代理服务器
      • 客户端将请求发送给反向代理服务器, 反向代理将客户端请求转发给web服务器
      • 客户端----反向服务器(将客户端的请求分发给服务器集群)--服务器
  • 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集群:

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

http://www.kler.cn/news/284281.html

相关文章:

  • Linux | 进程池技术解析:利用无名管道实现并发任务处理(含实现代码)
  • NTP时间服务器是什么?功能是什么?京准电钟
  • 今日(2024年8月30日)科技新闻(本周)
  • Git之2.5版本重要特性及用法实例(五十七)
  • 《机器学习》【项目】 爬虫爬取数据、数据分词、贝叶斯算法、判断分类 <完整实战详解> (全篇完结)
  • ajax学习笔记
  • 认知杂谈42
  • 【系统】Linux系统下载 ubuntu/deepin/deepin
  • JAVA毕业设计166—基于Java+Springboot+vue3的流浪宠物救助管理小程序(源代码+数据库)
  • golang学习笔记——channel使用场景
  • 【云原生】Kubernetes中如何通过Pod名称查询Docker容器ID,通过Docker容器ID查询Pod名称?
  • Kafka队列:分布式系统的消息引擎
  • 【方案合集】园区数据治理解决方案(PPT原件)
  • RK3588 系列之2—通过PC网络共享,连接开发板
  • 8款对比分析:哪款协同办公软件最适合您的团队?
  • 算法题常用的STL(Java与C++)(90%)
  • ArcEngine二次开发实用函数18:使用shp矢量对栅格文件进行掩模和GP授权获取
  • CSS线性渐变拼接,一个完整的渐变容器(div),要拆分成多个渐变容器(div),并且保持渐变效果一致
  • YeAudio音频工具的介绍和使用
  • 【系统架构设计师】论文:论需求分析方法及应用
  • TCP/IP五层模型
  • 算法学习:一维数组的排序算法
  • 深入解析 Spring Boot 中 MyBatis 自动配置的流程
  • Python 如何操作 Excel 文件(openpyxl, xlrd)
  • 计算机学习
  • java框架第二课(Reflection反射机制)
  • 最短路算法详解(Dijkstra 算法,Bellman-Ford 算法,Floyd-Warshall 算法)
  • 【手机取证】智能手机位置数据提取方法
  • 《黑神话:深度探索与攻略指南》——虎先锋隐藏门在哪里
  • Python生成指定数量的随机XML文件