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地址
来源:51CTO
作者:wzaqj
链接:https://blog.51cto.com/damaicha/2140558