负载均衡分类及选择(lvs/nginx/haproxy/keepalived)

lvs官网:http://www.linuxvirtualserver.org/
haproxy官网:https://www.haproxy.org/、https://www.haproxy.com/
nginx官网:https://nginx.org/
keepalived官网:https://www.keepalived.org/

名词术语:
http://kb.linuxvirtualserver.org/wiki/Category:Terms_and_Abbreviations

1、负载均衡器:

功能:在集群中的服务节点平衡工作负载
http://kb.linuxvirtualserver.org/wiki/Load_balancer

分类:

网络负载均衡器:用于网站,在一组web服务器之间平衡负载
硬件负载均衡器:F5和Array等商用负载均衡器
软件负载均衡器:LVS(四层、重量级)、nginx(四七、轻量级)、haproxy(四七、更轻量级)、httpd(七层)

四层nginx(stream模式且v1.9.0及以上版本)
七层nginx(http模式)
四层haproxy(mode tcp)
七层haproxy(mode http)

典型应用场景:

四层:redis、mysql、rabbitMQ、memcache等
七层:nginx、tomcat、PHP、图片、动静分离、API等

***参考文章:

nginx,lvs,haproxy+keepalived区别:https://www.cnblogs.com/onesea/p/15069992.html
Keepalived 与 Haproxy Nginx LVS:https://blog.csdn.net/nicepainkiller/article/details/95997289
四层、七层负载均衡的区别:https://www.cnblogs.com/zhaiyf/p/9051694.html
Haproxy和Nginx的区别:
https://www.cnblogs.com/Mr-Echo/p/12236926.html

***一般比较合理流行的架构方案:

Web前端采用Nginx/HAProxy+Keepalived 作负载均衡器;
后端采用 MySQL 数据库一主多从和读写分离,采用 LVS+Keepalived 的架构。

keepalived作用:
保证负载均衡器不会单点故障,且只用一个IP对外。

haproxy对比nginx:
haproxy专业,效率高,并发性能强;
nginx是负载均衡/反向代理软件,也是功能强大的Web应用服务器。

负载均衡软件选择:
中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了;
如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的;
大型网站或重要的服务,且服务器比较多时,可以考虑用LVS。

比较理想的基本架构为:
Array/LVS <— Nginx/Haproxy <— Squid/Varnish <— AppServer。

2、负载均衡:

用于在许多进程、计算机、网络、磁盘或其他资源之间分散工作负载的技术,以便没有单个资源过载
也可以被认为是将item分配到buckets中,如数据到内存位置,文件到磁盘,给处理器的任务,到网络接口的数据包,对服务器的请求,它的目标是均匀分布。

分类:

(1)网络负载均衡
二层负载均衡:将两个或多个链路绑定到单个更高带宽的逻辑链路中
四层负载均衡:将请求分发到传输层的服务器,如TCP、UDP和SCTP传输协议。
七层负载均衡:在应用层解析请求,根据不同类型的请求内容,将请求分发给服务器
MPLS负载均衡:基于多协议标签交换(MPLS)标签信息来均衡网络服务
(2)DNS负载均衡:将域名解析到不同的服务器IP地址,将请求分发到不同的服务器上。
(3)链路负载均衡:来自不同 ISP 或一个 ISP 的多条链路之间平衡流量
(4)数据库负载均衡:平衡数据库服务器集群之间的数据库访问请求
(5)SIP负载均衡:对SIP相关服务进行负载均衡
(6)计算负载均衡:将一个计算任务拆分到集群中的许多不同节点上,最常用于科学计算。

你可能感兴趣的:(docker,docker,运维)