负载均衡层级理论篇

本文介绍负载均衡在OSI(七层网络模型)的应用

 

二层负载均衡

 

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

 

三层负载均衡

 

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

 

四层负载均衡:

 

四层负载均衡只,建立一次TCP连接,工作在OSI模型的传输层,由于在传输层,只有TCP/UDP协议,这两种协议中除了包含源IP、目标IP以外,还包含源端口号及目的端口号,基于IP+端口的负载均衡。通过发布三层的IP地址(VIP),然后加四层的端口号,来决定哪些流量需要做负载均衡,对需要处理的流量进行NAT处理,通过修改数据包的地址信息(IP+端口号)将流量转发到应用服务器。并记录下这个TCP或者UDP的流量是由哪台服务器处理的,后续这个连接的所有流量都同样转发到同一台服务器处理;

 

 

七层负载均衡:

 

负载均衡器与客户端及后端的服务器会分别建立一个TCP连接。即两次TCP连接。就是在四层的基础上(没有四层是绝对不可能有七层的),再考虑应用层的特征,比如同一个Web服务器的负载均衡,除了根据VIP加80端口辨别是否需要处理的流量,还可根据七层的URL、浏览器类别、语言来决定是否要进行负载均衡。举个例子,如果你的Web服务器分成两组,一组是中文语言的,一组是英文语言的,那么七层负载均衡就可以当用户来访问你的域名时,自动辨别用户语言,然后选择对应的语言服务器组进行负载均衡处理。七层就是基于URL等应用层信息的负载均衡

 

 

常用负载均衡工具

LVS,F5,NGINX (Nginx Plus的商业授权版开始具有TCP负载均衡(四层)的功能)

猜你喜欢

转载自www.cnblogs.com/naci/p/10189923.html