4层负载均衡软件nginx
4层负载均衡器基于ip+端口来进行负载均衡。正则表达式
应用名 | 说明 |
---|---|
F5 | 硬件负载均衡器,功能很好,可是成本很高 |
lvs | 重量级的四层负载软件 |
nginx | 轻量级的四层负载软件,带缓存功能,正则表达式较灵活 |
haproxy | 模拟四层转发,较灵活 |
7层负载均衡软件算法
7层负载均衡器基于URL等应用层信息来进行负载均衡。sql
应用名 | 说明 |
---|---|
haproxy | 天生负载均衡技能,全面支持七层代理,会话保持,标记,路径转移; |
nginx | 只在http协议和mail协议上功能比较好,性能与haproxy差很少; |
apache | 功能较差 |
Mysql proxy | 功能尚可。 |
报文改写流程apache
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.须要调度器和后端服务器在同一个局域网内。
报文改写流程
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。直接返回给客服端。
适用场景
大流量高并发业务环境,如视频业务。
优势
调度器只负责转发请求报文没有其余的资源开销,性能最好。
缺点
要求调度器和后端服务器的都有一块网卡连在同一个物理网络局域网内。
报文改写流程
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.服务器须要联通外网,安全风险较大。
报文改写流程
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地址