|NO.Z.00004|——————————|Applications|——|LBC负载均衡集群.V1|——|6台server|
一、LBC-介绍(负载均衡集群介绍)
1、集群拓扑图

2、web负载均衡集群拓扑
### --- web负载均衡集群拓扑
~~~ 用户通过互联网访问到了网站,其实不是直接连接到web服务器上,
~~~ 若访问到的主机是有web服务集群的,其实访问到负载均衡调度器,
~~~ 负载均衡个调度器接收到访问数据通过轮询的方法发给真正的web服务器。
~~~ 若还要访问数据库,若是访问量比较少的话,
~~~ 可能是单个的数据存储,数据量大的话可能是数据库集群。
~~~ 负载均衡服务器还有主备的集群
~~~ 此环境包含:负载均衡集群,高可用,存储集群
3、负载均衡结构图(上图拆分出来的一部分)

4、负载调度器(最简单的是轮询)
### --- 负载调度器(最简单的是轮询)
~~~ 负载调度器:
~~~ 真实服务器池:
5、分类:软件/硬件
### --- LVS:
~~~ 最普及的软件负载均衡
### --- Nginx:
~~~ 代理负载均衡的功能,企业版的:融合了监控nginx-plagues服务;
~~~ 相当于是插件的含义;HAProc:linux 中HA项目中的一个子项目;专门做负载调度器的。
~~~ 四层的话没有LVS广;拆成7层的话没有nginx用途广。
### --- F5:硬件:
~~~ 半圆球发红光的去定位为F5

6、分类-工作层级

### --- 物理层:
~~~ 负责实际的bite流传输,及其特性定义
### --- 数据链路层:
~~~ Mac地址互联,Mac地址编址:交换机在这一层
### --- 网络层:
~~~ 安全的编址,路由选择,
### --- 传输层:
~~~ 端口 确定传输协议,确定是UDP还是TCP的
### --- 会话层:
~~~ 提供给用户识别的部分
### --- 表示层:
~~~ 提供给用户识别的部分
### --- 应用层:
~~~ 提供给用户识别的部分
### --- 二层:
~~~ 数据链路层:实现负载均衡:负载均衡调度器在这一层;典型的代表是F5 ,引入带宽。
~~~ 提升性能多买三大运营商的带宽,介入到F5内部,会根据不同的而用户用不同供应商的专线去提供数据。
~~~ F5可以判断数据来源是哪个运营商,而提供最快的方案。
### --- 四层:
~~~ 传输层:LVS典型代表,F5也是可以做的。
~~~ 在这一层向下的都可以观测到。
~~~ LVS可以根据端口,ip地址来判断它是否需要进行负载调度
### --- 七层:
~~~ 应用层:nginx典型代表,向下的6层它可以全部识别,
~~~ 可以识别http/域名/主机名进行数据识别分发。
~~~ F5在七层也是可以实现的,可以和F5和LVS来实现负载再来一层nginx。
~~~ 常规不需要这样做。实现特定的功能。
二、LBC-原理(负载均衡集群原理)
1、分类-四层工作逻辑

### --- 假设用户地址是公网地址
### --- LVS也假设是公网地址:
~~~ 对外暴露的是LVS的地址
### --- Apache为私有地址:
~~~ 通过LVS转化过去的公有地址。直接返回数据报文。
~~~ Apache是谁访问我,我给谁数据。
~~~ LVS只是中间做了一个伪装,LVS的压力会非常大。导致宕机。
~~~ 只做了地址伪装,没有把数据真实接收数据。
~~~ 在Apache压力大的持续叠加Apache服务器的时候,LVS压力是最大的,需要配置高可用。
~~~ LVS数据只是把地址伪装,更换地址信息的更改,没有进行真实的数据数据存储和数据传输。
~~~ 没有实际的数据转发。
~~~ 进行了一次完整的TCP连接。只把地址伪装后为用户转发数据。
~~~ 不涉及到真实的转发
2、分类-七层工作逻辑

### --- 用户会发送一个数据报文到nginx负载调度器。
### --- 源地址是用户访问地址;
~~~ 源端口依赖nginx随机端口,借助nginx的规则库。分发给Apache服务器,
~~~ 会根据当前的算法,想后端服务器去要数据,
~~~ Apache会接收到nginx的请求,返回给nginx服务器。两个不同的tcp文件。
~~~ 源变为负载均衡服务器;直接不会告诉Apache不是客户要的数据,
~~~ 而是我要的。nginx收到数据后,把数据重新封装后反馈给用户。
~~~ 这里进行了两次不同的完整的TCP连接以及访问。
~~~ 对nginx的压力最大。所有的数据都会进行过重新封装分发。
~~~ nginx是轻量级的,但在负载均衡上来说,压力是比较大的。
~~~ 涉及到数据的真实转发
3、分类-访问量:LVS是nginx代理的上百倍,

三、适用场景

### --- LVS:
~~~ B/S C/S 可以代理任何TCP/UDP TCP里面还有http协议,这就是BS结构, mysql是C/S结构,
### --- NGINX:C/S:
~~~ 只能代理/C/S结构,只能识别到http协议;
~~~ 标准版本,识别协议,端口,主机名,IP都是可以识别到的。
~~~ nginx的负载均衡压力会很大,在有些场景下还是需要nginx来做负载,
~~~ 在特定需要直接进行数据转发会使用。
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv001-lbchac
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通