负载均衡在现在分布式系统中的作用越来越重要,怎么合理的将大量的请求尽量平均的分布给多个接收服务器成为了大家关注的问题。
负载均衡从网络结构来看,其实就是根据我们最熟悉的计算机网络的七层模型来分的。
计算机网络的七层模型
物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
那么根据计算机网络的七层模型,负载均衡分为链路层,网络层,协议层,应用层四种负载均衡,也就是大家口中的,二层负载均衡,三层负载均衡,四层负载均衡,七层负载均衡,
因为最常用的是四层负载均衡和七层负载均衡,我们详细写一下这两种。
二层负载均衡 mac
一般用虚拟MAC地址方式,外部对应虚拟MAC地址请求,负载均衡接收后分配后端实际的MAC地址响应
三层负载均衡 ip
一般采用虚拟IP地址的方式,外部对应虚拟的IP地址请求,负载均衡接收后分配后端实际的IP地址响应,即一个IP对应一个IP的转发,端口全开放
四层负载均衡 tcp
在三次均衡负载的基础上,即从第四层开始,使用Ip+Port接收请求,再转发到对应的机器,详细的说就是通过第三层发布的IP地址,然后加上四层的端口号,来决定哪些流量需要做负载均衡,对需要处理的流量进行NAT处理,转发到后台服务器
七层负载均衡 http
在四层负载均衡的基础上(没有四层是绝对不可能有七层的),除了根据四层提供的IP+Port,七层还可以根据七层的URL,浏览器类别,语言来决定是否进行负载均衡
所以对于不同的负载均衡方法,我们可以看到最简单的区别就是,他们判断是否进行负载均衡的方式不一样,实际上就是根据不同层数协议能看到的信息来决定的,
更详细的负载均衡的总结大家可以看看这篇文章,写的很详细了
https://www.cnblogs.com/kevingrace/p/6137881.html