web实现负载均衡的几种实现方式 (3)

VS/DR的整个过程与VS/TUN非常类似,不同之处在于调度器不对请求包进行二次封装,只是将目标MAC地址更改为经过调度算法选出的目标服务器的MAC地址。如下图:

web实现负载均衡的几种实现方式

三种方法的优缺点比较 VS/NAT

优点

对后端服务器的操作系统无要求

只需要一个IP地址配置在调度器上,服务器组可以用私有的IP地址。

支持端口映射

缺点

请求和响应报文都需要通过调度器,伸缩能力有限(10+)

要求服务器和调度器在同一个VLAN

需要将服务器的默认网关指向调度器

对于那些将IP地址或者端口号在报文数据中传送的网络服务,需要编写相应的应用模块来转换报文数据中的IP地址或者端口号

VS/TUN

优点

不需要调度应答报文,性能高

服务器和调度器可以不在同一个VLAN

支持广域负载均衡

缺点

所有的服务器必须支持“IP Tunneling”协议,要安装内核模块(比如IPIP等),配置复杂

有建立IP隧道的开销

服务器上直接绑定虚拟IP(Virtaul IP),风险很大

服务器需要联通外网

不支持端口映射

VS/DR

优点

与VS/TUN相比,没有IP隧道的开销,性能最好

缺点

要求调度器与服务器都有一块网卡连在同一物理网段(同一个VLAN)上

要求服务器网络设备(或者设备别名)不作ARP响应,或者能将报文重定向(Redirect)到本地的Socket端口上

服务器上直接绑定虚拟IP(Virtaul IP),风险很大

不支持端口映射

VS/FULLNAT

如上节所述,前面三种传统的负载均衡机制各自存在一些不足。

VS/FULLNAT是为了解决这些不足而新开发的一种转发模式。VS/FULLNAT的特点是:

调度器和服务器可以跨VLAN通信,不需要配置在同一个网段

请求和应答报文都经过调度器,服务器不需要绑定虚拟IP

VS/FULLNAT这两个特点可以简化网络拓扑,降低运维成本和风险。

如何选择

如果人少钱多,不在乎性能的损耗愿意多买服务器,同时希望最大程度较少运维的工作量,可以选择FULLNAT

很大众的方式是用DR,没有太多的优点但也没有太多的缺点

如果要搞广域网负载均衡,那就用TUN吧

个人感觉NAT不是为了互联网用的。小并发的实验性应用或者用在非web场合,比如mysql集群等。当然,如果需要端口映射,必须使用NAT方式

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzdjjg.html