天天看点

海量运维常用技术之--HAProxy网站负载均衡应用

近期朋友刘鑫的网站成功上线并运营了,PV达到了亿级/日的访问量,最前端用的HAProxy+Keepalived双机作的负载均衡器/反向代理,整个网站非常稳定;这让我更坚定了HAProxy+Keepalived作为Web最前端的负载均衡器网站架构设计方案,在这里我也有一点要跟大家申明下:很多朋友担心软件级别的负载均衡在高并发流量冲击下的稳定情况,事实是我们通过成功上线的许多网站发现,HAProxy作为前端的负载均衡的稳定性是非常好的,宕机的可能性微乎其微,由于HAProxy我们多用于7层负载均衡,在大流量的冲击下,发现确实对CPU有一定消耗,这里推荐大家用DELL 710 | 910服务器。另外,HAProxy不仅仅只能做七层负载均衡,它还可以做四层负载均衡的,由于它跟LVS一样,仅仅只是做为负载均衡 专用,所以在转发及处理流量的效率上,肯定是优于Nginx的。现在网上LVS/Nginx的资料太多了,所以大家的关注度自然也高,其实HAProxy也是很不错的,所以网站有负载均衡需求的朋友,不妨考虑试用下HAProxy。双机高可用方案建议大家采用HAProxy+Keepalived。

再拿另外一个工作实例来说下,另外一个广告类型的网站,我负责改进其整体架构设计,由于要保证整个网站的高可用,公司老总授意用F5来做为LB,但经过仔细分析,我发现网站初期流量并不是特别大,日PV不过百万,而且网站主要是白天负责开放,监控人员也很多(运维和运营人员白天基本都在),所以就用DNS轮询的方式来处理了,而且事后发现效果也比较理想,达到了前期节约成本的目的,而且后期规划中我也坚定的选择了HAProxy,放弃F5和LVS。

现在HAProxy的算法也非常多,并不比专业的F5/LVS算法少,常用的算法有如下8种:

一、roundrobin,表示简单的轮询,建议关注;

二、static-rr,表示根据权重,建议关注;

三、leastconn,表示最少连接者先处理,建议关注;

四、source,表示根据请求源IP,跟Nginx的ip_hash算法相似,建议关注;

五、uri,表示根据请求的URI;

六、url_param,表示根据请求的URl参数;

七、hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求;

八、rdp-cookie(name),表示根据据cookie(name)来锁定并哈希每一次TCP请求。

本文转自 抚琴煮酒 51CTO博客,原文链接:http://blog.51cto.com/yuhongchun/1281056,如需转载请自行联系原作者

继续阅读