码迷,mamicode.com
首页 > 其他好文 > 详细

复杂均衡方案

时间:2019-11-07 10:11:53      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:连接   轮询   NAT地址转换   对比   block   后端   sql   alived   主机   

二层负载均衡:

通过改写报文的目标MAC地址为上游服务MAC地址。源IP地址和目标IP地址是没有改变的,负载均衡服务器和真实服务器共享同一个VIP,如LVS DR工作模式。

四层负载均衡:

根据端口将报文转发到上游服务器(不同的IP地址+端口),如LVS NAT模式、HaProxy。

七层负载均衡:

根据端口号和应用协议如HTTP协议的主机名、URL,转发报文到上游服务器(不同的IP地址+端口,如Haproxy、Nginx)。

需要reload nginx的方式

consul+consul-template方式, reload是有损耗的。

不需要reload nginx方式(动态实现负载均衡)

  • Tengine的Dyups模块
  • 微博的Upsync
  • OpenResty的balancer_by_lua

微博采用Upsync+consul,又拍云使用开源的slardar(Consul+balancer_by_lua)

动态添加/删除上有吧服务器,需要重启nginx,像HTTP动态负载均衡那样。

  • nginxu商业版
  • nginx-strean-upsync-module
  • openResty提供的stream-lua-nginx-model尚未实现balancer_by_lua,暂时无法使用。

扩展:

Liunx 三大主流(LVS、Nginx、HAproxy)负载均衡对比

  • LVS

1.抗负载能力强,性能高,能达到F5的60%,对内存和cpu资源消耗比较低

2.工作在网络4层,通过VRRP协议(仅做代理使用),具体的流量是由liunx内核来处理,因此没有流量的产生。

3.稳定,可靠性强,自身有完美的热备方案(Keepalived+LVS)

4.不支持正则处理,不能做动静分离

5.支持多种负载均衡算法:rr(轮询),wrr(带权轮询)、lc(最小连接)、wlc(带权最小连接)

6.配置相对复杂,对网络依赖比较大,稳定性很高。

7.LVS工作模式有4种:

? (1)nat地址转换

? (2)dr直接路由

? (3)tun隧道

? (4)full-nat

  • Nginx

1.工作在网络7层,可以针对http应用做一些分流的策略,比如针对域名,目录结构

2.Nginx对网络的依赖较小,理论上能ping通就能进行敷在功能

3.Nginx安装配置比较简单,测试起来很方便

4.也可以承担较高的负载压力且稳定,Nginx是为了解决c10k问题而诞生的

5.对后端服务器的健康检查,只支持通过端口来检测,不支持通过url来检测

6.Nginx对请求的异步处理可以帮助节点服务器减轻负载压力

7.Nginx仅能支持http、https和Email协议,这样就在适用范围较小

8.不支持Session的直接保持,但能通过ip_hash来解决,对Big request header的支持不是很好

9.Nginx还能做Web服务器即Cache功能。

  • HAproxy

1.支持两种代理模式:TCP(四层)和HTTP(七层),支持虚拟主机

2.能够补充Nginx的一些缺点比如Session的保持,Cookie引导等工作

3.支持url检测后端的服务器出问题的检测会有很好的帮助。

4.更多负载均衡策略比如:动态加权轮循,加权源地址哈希,加权URL哈希加权等参数哈希已经实现。

5.单纯从效率上来讲HAproxy更会比Nginx有更出色的负载均衡

6.HAproxy可以对MYsql进行负载均衡,对后端的DB节点进行检测和负载均衡

7.支持负载均衡算法:轮循、带权轮循、源地址保持、请求URL、根据Cookie

8.不能做Web服务器即Cache。

总结

三大主流软件负载均衡器适用的生产场景:

1.网站建设初期,可以选用Nginx、HAproxy作为反向代理负载均衡(流量不大时可以选择不用负载均衡)因为其配置简单,性能也能满足一般业务场景。如果考虑到负载均衡器是有单点失败问题,可以采用Nginx+Keepalived避免负载均衡器自身单点问题。

2.网站并发达到一定程度后,为了提高稳定性和转发效率,可以使用LVS,毕竟LVS比Nginx/HAproxy要更稳定,转发效率也高。

复杂均衡方案

标签:连接   轮询   NAT地址转换   对比   block   后端   sql   alived   主机   

原文地址:https://www.cnblogs.com/snail-gao/p/11809730.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!