• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

关闭

返回栏目

关闭

返回服务器栏目

2 - 基本 - 集群软件 - 负载均衡Load Balance

作者:

贺及楼

成为作者

更新日期:2023-12-04 14:30:47

常用开源集群软件有:lvs,keepalived,haproxy,nginx,apache,heartbeat, Tengine(阿里在nginx开发的)
常用商业集群硬件有:F5,Netscaler,Radware,A10 等……

基础 - OSI七层模型

7、应用层;6、表示层;5、会话层;4、传输层;3、网络层;2、数据链路层;1、物理层;

层级 OSI参考模型 各层的解释 对应
7 应用层 为应用程序提供服务 TELNET、HTTP、FTP、NFS、SMTP、DNS等
6 表示层 数据格式转化、数据加密
5 会话层 建立、管理和维护会话
4 传输层 建立、管理和维护端到端的连接 TCP、UDP、SPX等
3 网络层 IP选址及路由选择 IP、IPX等
2 数据链路层 提供介质访问和链路管理 ATM、FDDI等
1 物理层 物理层

负载均衡 - 优化OSI七层模型

常见在应用层、传输层、网络层和数据传输层做文章

工作在应用层的负载均衡我们通常称之为七层负载均衡
工作在传输层的负载均衡我们通常称之为四层负载均衡

最常用的是四层和七层负载均衡:

二层负载均衡 - 虚IP - 不同机器同IP
负载均衡服务器对外依然提供一个VIP(虚IP),集群中不同的机器采用相同IP地址,但是机器的MAC地址不一样。当负载均衡服务器接受到请求之后,通过改写报文的目标MAC地址的方式将请求转发到目标机器实现负载均衡。

三层负载均衡 - 虚IP - 不同机器不同IP
和二层负载均衡类似,负载均衡服务器对外依然提供一个VIP(虚IP),但是集群中不同的机器采用不同的IP地址。当负载均衡服务器接受到请求之后,根据不同的负载均衡算法,通过IP将请求转发至不同的真实服务器。

四层负载均衡
四层负载均衡工作在OSI模型的传输层,由于在传输层,只有TCP/UDP协议,这两种协议中除了包含源IP、目标IP以外,还包含源端口号及目的端口号。四层负载均衡服务器在接受到客户端请求后,以后通过修改数据包的地址信息(IP+端口号)将流量转发到应用服务器。

七层负载均衡
七层负载均衡工作在OSI模型的应用层,应用层协议较多,常用http、radius、dns等。七层负载就可以基于这些协议来负载。这些应用层协议中会包含很多有意义的内容。比如同一个Web服务器的负载均衡,除了根据IP加端口进行负载外,还可根据七层的URL、浏览器类别、语言来决定是否要进行负载均衡。

负载均衡工具

Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件。

LVS :LVS主要用来做四层负载均衡
LVS(Linux Virtual Server),也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目。使用LVS技术要达到的目标是:通过LVS提供的负载均衡技术和Linux操作系统实现一个高性能、高可用的服务器群集,它具有良好可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的服务性能。

Nginx :Nginx主要用来做七层负载均衡
Nginx(发音同engine x)是一个网页服务器,它能反向代理HTTP, HTTPS, SMTP, POP3, IMAP的协议链接,以及一个负载均衡器和一个HTTP缓存。。

HAProxy :HAProxy主要用来做七层负载均衡
HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。

负载均衡算法

负载均衡服务器在决定将请求转发到具体哪台真实服务器的时候,是通过负载均衡算法来实现的。负载均衡算法,是一个负载均衡服务器的核心。

负载均衡算法 - 1静态负载均衡算法包括:

轮询,比率,优先权

轮询(Round Robin):顺序循环将请求一次顺序循环地连接每个服务器。当其中某个服务器发生第二到第7 层的故障,BIG-IP 就把其从顺序循环队列中拿出,不参加下一次的轮询,直到其恢复正常。

比率(Ratio):给每个服务器分配一个加权值为比例,根椐这个比例,把用户的请求分配到每个服务器。当其中某个服务器发生第二到第7 层的故障,BIG-IP 就把其从服务器队列中拿出,不参加下一次的用户请求的分配, 直到其恢复正常。

优先权(Priority):给所有服务器分组,给每个组定义优先权,BIG-IP 用户的请求,分配给优先级最高的服务器组(在同一组内,采用轮询或比率算法,分配用户的请求);当最高优先级中所有服务器出现故障,BIG-IP 才将请求送给次优先级的服务器组。这种方式,实际为用户提供一种热备份的方式。

负载均衡算法 - 2动态负载均衡算法包括:

最少连接数,最快响应速度,观察方法,预测法,动态性能分配,
动态服务器补充,服务质量,服务类型,规则模式。

最少的连接方式(Least Connection):传递新的连接给那些进行最少连接处理的服务器。当其中某个服务器发生第二到第7 层的故障,BIG-IP 就把其从服务器队列中拿出,不参加下一次的用户请求的分配, 直到其恢复正常。

最快模式(Fastest):传递连接给那些响应最快的服务器。当其中某个服务器发生第二到第7 层的故障,BIG-IP 就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。

观察模式(Observed):连接数目和响应时间以这两项的最佳平衡为依据为新的请求选择服务器。当其中某个服务器发生第二到第7 层的故障,BIG-IP就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。

预测模式(Predictive):BIG-IP利用收集到的服务器当前的性能指标,进行预测分析,选择一台服务器在下一个时间片内,其性能将达到最佳的服务器相应用户的请求。(被BIG-IP 进行检测)

动态性能分配(Dynamic Ratio-APM):BIG-IP 收集到的应用程序和应用服务器的各项性能参数,动态调整流量分配。

动态服务器补充(Dynamic Server Act.):当主服务器群中因故障导致数量减少时,动态地将备份服务器补充至主服务器群。

服务质量(QoS):按不同的优先级对数据流进行分配。

服务类型(ToS):按不同的服务类型(在Type of Field中标识)负载均衡对数据流进行分配。

规则模式:针对不同的数据流设置导向规则,用户可自行。