软负载均衡与硬负载均衡、4层与7层负载均衡_java


在前面的这篇文章《手把手教你写出 6 种负载均衡算法!》中,我用 Java 实现了 6 中负载均衡算法,今天我们抽空再来讲一讲软负载与硬负载!


软负载,顾名思义就是靠软件手段来实现的负载均衡。比如,我上面那么文章中的各种算法。软负载也通常被称为 4层或 7 层负载!


硬负载,就是靠硬件实现的负载均衡,数据包转发功能。常见的就是 F5,这个机器很贵,通常几百万起吧。


我上面讲到来,软负载又被称为 4 层或者 7 层负载。这是为什么呢?


软负载均衡与硬负载均衡、4层与7层负载均衡_java_02

因为,网络分层最开始被人们分为 4 层,后来进化为 OSI 7 层参考模型。注意,这里都是参考模型。并没有被固定为标准模式。


硬负载效率比软负载高。它的原理是把目标 IP 地址改为后台服务器的 ip 地址。硬负载方面,通常有这些负载均衡设备。多链路负载均衡、防火墙负载均衡、服务器负载均衡等。


软负载方面的软件特别多,比如早期阿里章文嵩博士的 LVS,再比如 Nginx 的负载均衡等。通常软负载有这些大的分类技术,http重定向、DNS负载均衡、反向代理负载均衡、IP负载均衡(LVS-NAT)、直接路由(LVS-DR)、IP隧道(LVS-TUN)等技术。


软负载均衡与硬负载均衡、4层与7层负载均衡_java_03


硬负载的效率非常高。这就好像中医看病一样,通过面相、心率、望闻问切就知道一个大概。软负载就好比,你说肚子疼,医生来就给你抽血化验、B 超、CT 等先搞一套,所以相当来说它效率低一些!


以上,希望能够帮助到大家对负载均衡有所理解!