负载均衡器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了负载均衡器相关的知识,希望对你有一定的参考价值。

1.常见的负载均衡器

4层负载均衡软件

4层负载均衡器基于ip+端口来进行负载均衡。

应用名 说明
F5 硬件负载均衡器,功能很好,但是成本很高
lvs 重量级的四层负载软件
nginx 轻量级的四层负载软件,带缓存功能,正则表达式较灵活
haproxy 模拟四层转发,较灵活

7层负载均衡软件

7层负载均衡器基于URL等应用层信息来进行负载均衡。

应用名 说明
haproxy 天生负载均衡技能,全面支持七层代理,会话保持,标记,路径转移;
nginx 只在http协议和mail协议上功能比较好,性能与haproxy差不多;
apache 功能较差
mysql proxy 功能尚可。

2. lvs的4种工作模式

2.1 nat模式

技术分享图片

报文改写流程

1.客户端发送请求报文,源ip为192.168.0.10 目标ip为192.168.1.10。
2.调度器接收到请求报文后,根据调度算法(如rr,wrr,lc等等)选出rs2来进行提供服务。
3.调度器改写报文,只改写目标ip为10.0.0.3。
4.rs2返回响应报文,源ip为10.0.0.3 目标ip为192.168.0.10。
5.调度器接收响应报文,转换源ip。源ip为192.168.1.10 目标ip为192.168.0.10,返回给客服端。

适用场景

小并发的业务环境。

优点

1.只需要一个外网ip地址配置调度器上,并且后端服务器可以用私有ip。
2.对后端的服务器没有系统上的要求。

缺点

1.流进和流出的流量都会经过调度器,那么调度器就会成为一个性能瓶颈。
2.需要调度器和后端服务器在同一个局域网内。

2.2 dr模式

技术分享图片

报文改写流程

1.客户端发送请求报文,源ip为192.168.0.10 目标ip为192.168.1.10。
2.调度器接收到请求报文后,根据调度算法(如rr,wrr,lc等等)选出rs2来进行提供服务。
3.调度器改写报文,只改写目标mac地址为rs2的mac。
4.rs2返回响应报文,源ip为192.168.1.10 目标ip为192.168.0.10。直接返回给客服端。

适用场景

大流量高并发业务环境,如视频业务。

优点

调度器只负责转发请求报文没有其他的资源开销,性能最好。

缺点

要求调度器和后端服务器的都有一块网卡连在同一个物理网络局域网内。

2.3 tun模式

技术分享图片

报文改写流程

1.客户端发送请求报文,源ip为192.168.0.10 目标ip为192.168.1.10。
2.调度器接收到请求报文后,根据调度算法(如rr,wrr,lc等等)选出rs2来进行提供服务。
3.调度器对客户端发来的请求报文,重新封装成一个新的请求报文。此时新报文,源ip为192.168.1.10 目标ip为192.168.3.3。然后和rs2建立隧道转发请求报文给rs2。
4.rs2接收到请求报文后,对其进行解封装,获得原始请求报文。
5.rs2将请求处理完成后,直接发送响应报文给客户端。此时源ip为192.168.1.10,目标ip为192.168.0.10。

适用场景

需要对放在不同区域网络内的业务机器进行负载。

优点

1.不需要转发后端服务器的响应报文,负载能力强。
2.服务器和调度器可以不在同一个局域网中。
3.支持广域网负载均衡。

缺点

1.后端服务器必须支持“IP Tunneling”协议。
2.系统需要建立IP隧道,资源开销大。
3.服务器需要联通外网,安全风险较大。

2.4 fullnat模式

技术分享图片

报文改写流程

1.客户端发送请求报文,源ip为192.168.0.10 目标ip为192.168.1.10。
2.调度器接收到请求报文后,根据调度算法(如rr,wrr,lc等等)选出rs2来进行提供服务。
3.调度器改写报文,改写目标ip和源ip。此时源ip为10.0.1.1 目标ip为10.0.3.3。
4.rs2返回响应报文,源ip为10.0.3.3 目标ip为10.0.1.1。
5.调度器接收响应报文,转换源ip和目标ip。源ip为192.168.1.10 目标ip为192.168.0.10,返回给客服端。

适用场景

对不同局域网内的业务机器进行负载。

优点

1.相较于nat模式,调度器和后端服务器可以在不同的局域网内。

缺点

1.调度器会成为系统性能瓶颈。
2.性能比nat模式更弱,对请求和响应报文,它比nat模式需要多修改源ip地址和目标ip地址

以上是关于负载均衡器的主要内容,如果未能解决你的问题,请参考以下文章

负载均衡器

LoadBalancerInterceptor负载均衡拦截器

使用 负载均衡器 Ribbon 实现负载均衡

F5负载均衡器

负载均衡器技术Nginx和F5的优缺点对比

负载均衡及负载均衡器