三种LVS负载均衡模式

时间:2022-05-18 03:10:28

负载均衡集群

1、主流开源软件:LVS、keepalived、haproxy、nginx等;

�LVS特点:

  • 抗负载能力强、是工作在网络4层之上仅作分发之用,没有流量的产生,这个特点也决定了它在负载均衡软件里的性能最强的;

  • 配置性比较低,这是一个缺点也是一个优点,因为没有可太多配置的东西,所以并不需要太多接触,大大减少了人为出错的几率;

  • 工作稳定,自身有完整的双机热备方案;

  • 无流量,保证了均衡器IO的性能不会收到大流量的影响;

  • 应用范围比较广,可以对所有应用做负载均衡;    

  • 软件本身不支持正则处理,不能做动静分离。

�HAProxy特点:

  • HAProxy的算法多;

  • HAProxy是支持虚拟主机的;

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

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

  • 它跟LVS一样,本身仅仅就只是一款负载均衡软件;

  • HAProxy可以对Mysql读进行负载均衡,对后端的MySQL节点进行检测和负载均衡,不过在后端的MySQL slaves数量超过10台时性能不如LVS。

�Nginx特点:

  • Nginx仅能支持http和Email;

  • 工作在网络的7层之上,可以针对http应用做一些分流的策略;

  • Nginx对网络的依赖非常小;

  • Nginx安装和配置比较简单,测试起来比较方便;

  • 可以承担高的负载压力且稳定,一般能支撑超过几万次的并发量;

  • Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等。

2、其中LVS属于4层(网络OSI 7层模型),nginx属于7层,haproxy既可以认为是4层,也可以当做7层使用;

3、keepalived的负载均衡功能其实就是lvs;

4、lvs这种4层的负载均衡是可以分发除80外的其他端口通信的,比如MySQL的,而nginx仅仅支持http,https,mail,haproxy也支持MySQL这种;

5、相比较来说,LVS这种4层的更稳定,能承受更多的请求,而nginx这种7层的更加灵活,能实现更多的个性化需求。


LVS

简介

1、LVS是由国人章文嵩开发;

2、流行度不亚于apache的httpd,基于TCP/IP做的路由和转发,稳定性和效率很高;

3、LVS最新版本基于Linux内核2.6,有好多年不更新了;

4、LVS有三种常见的模式:NAT、DR、IP Tunnel;

�NAT模式:

三种LVS负载均衡模式

�DR模式:

三种LVS负载均衡模式

�IP Tunnel模式:

三种LVS负载均衡模式

5、LVS架构中有一个核心角色叫做分发器(Load balance),它用来分发用户的请求,还有诸多处理用户请求的服务器(Real Server,简称rs)。


调度算法

1、轮询 Round-Robin  rr;

2、加权轮询 Weight Round-Robin wrr;

3、最小连接 Least-Connection lc;

4、加权最小连接 Weight Least-Connection wlc;

5、基于局部性的最小连接 Locality-Based Least Connections lblc;

6、带复制的基于局部性最小连接 Locality-Based Least Connections with Replication  lblcr;

7、目标地址散列调度 Destination Hashing dh;

8、源地址散列调度 Source Hashing  sh。


本文出自 “Gorilla City” 博客,请务必保留此出处http://juispan.blog.51cto.com/943137/1964014