负载均衡集群
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模式:
�DR模式:
�IP Tunnel模式:
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