成熟的网络流量分流方案
LVS + keepalived方案
LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,linux内核2.6.X之后的版本默认集成了LVS模块(内核模块为名ipvs)。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案。
nginx + keepalived方案
nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的,其将源代码以类BSD许可证的形式发布,以其的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。
两种方案主要特性对比
-
稳定性
LVS + keepalived方案:LVS是专门的流量负债均衡方案,keepalived一开始也只是LVS的一个辅助工具,linux内核2.6.X之后的版本也默认集成了LVS模块(内核模块为ipvs),专业且稳定;
nginx + keepalived方案:nginx是高性能的HTTP和反向代理web服务器,以稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名,稳定上也无问题。 -
性能
(1)LVS工作在传输层(TCP,UDP),nginx工作在应用层(http), 从工作的协议层面来说,理论上LVS会更快;
(2)LVS的DR和TUN工作模式,可以只处理请求数据包,即只请求流量经过LVS处理,响应流量可以绕开LVS直达客户端,就http协议的话我们知道响应数据量比请求数据量要大得多;
依据LVS及nginx的以上工作特定,理论上来说LVS的吞吐量至少可以达到nginx的2倍以上,甚至十余倍都有可能。 -
实用性
因为LVS工作在传输层(TCP,UDP),因此它对所有应用层协议都能做负债均衡,而nginx工作在应用层,只能适用http和email。 -
专业性
keepalived + LVS 是专业的负债均衡方案,负债均衡方面特性丰富,支持4种工作模式,十种负债均衡调度算法。
选择建议
基于以上分析本次负债均衡方案采用LVS + keepalived方案。
支持配置如下工作特性:
(1)备份方式采用:双主机方式(Active-Active 方式);
(2)工作模式支持:DR模式、NAT模式;
(3)调度算法支持: 最少链接lc、加权最少链接wlc、轮询调度rr、加权轮询wrr;
配置方案建议:
双主机方式(Active-Active 方式),工作模式采用LVS的DR模式,调度算法采用最小连接调度算法,条件满足的情况下优先采用该方案(默认);