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

原创
运维 系统运维
HAProxy作为前端的负载均衡的稳定性是非常好的,宕机的可能性微乎其微,HAProxy不仅仅只能做七层负载均衡,它还可以做四层负载均衡的,由于它跟LVS一样,仅仅只是做为负载均衡专用,所以在转发及处理流量的效率上,肯定是优于Nginx的。

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

LVS现在几乎成了负载均衡的代名词,其作用和功能不断的被神化,但LVS有这么神奇吗?前段时间负责升级的一个电子商务网站,由于业务和监控的需求,后端的每台Web服务器上面都有十几条静态路由再加两个VLAN,LVS就满足不了需求了,而Nginx/HAProxy就没什么问题,而作为负载转发器,HAproxy的性能是优行NGINX,另外大家都知道,由于ARP抑制的原因,LVS的部署和维护并不是太简单,而HAProxy/Nginx就不存在这些问题。由于LVS本身还有些缺点,淘宝的技术一直在完善它,2012年有兴参加了淘宝的技术嘉年华,听取了吴佳明(淘宝普空)先生关于对LVS的改进讲座,其中提到了LVS的FULLNAT模式,它是一种新的转发模式,实现LVS后端的真实物理服务器间跨VLAN通讯,并且IN/OUT流量都经过LVS,另外,新的FULLNAT在防御DDOS攻击方面也有很大改进,有兴趣的朋友可以关注吴佳明先生的PPT

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

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

  1. roundrobin,表示简单的轮询,建议关注;
  2. static-rr,表示根据权重,建议关注;
  3. leastconn,表示最少连接者先处理,建议关注;
  4. source,表示根据请求源IP,跟Nginx的ip_hash算法相似,建议关注;
  5. uri,表示根据请求的URI;
  6. url_param,表示根据请求的URl参数;
  7. hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求;
  8. rdp-cookie(name),表示根据据cookie(name)来锁定并哈希每一次TCP请求。

现在新版的HAProxy也越来越强了,开始支持https了,建议关注HAProxy官方网站

撰写此文的目的是了推广HAProxy的应用,做技术的人不应该人云亦云,道听途说,应该以自己的线上环境和数据来说话,来做为自己的论理根据,也欢迎大家通过我的博客和微博地址来一起交流HAProxy在平时线上的应用。

个人博客:http://andrewyu.blog.51cto.com

微博地址:http://weibo.com/yuhongchun027

【声明】本文作者:余洪春(抚琴煮酒),英文名Andrew.Yu。在51CTO系统频道首发,转载请注明作者和出处。

责任编辑:黄丹 来源: 51CTO.com
相关推荐

2010-04-28 12:24:42

网站负载均衡

2010-05-05 22:58:46

2010-04-21 17:53:09

负载均衡技术

2011-11-03 14:48:41

负载均衡服务器

2010-05-10 14:20:24

负载均衡技术

2021-04-15 11:22:36

运维架构技术

2021-07-12 15:20:47

运维负载均衡CDN

2012-05-07 10:17:48

2019-09-27 08:18:13

负载均衡核心Key

2009-05-01 09:33:27

应用交换负载均衡

2018-02-10 11:11:01

网站技术架构负载均衡

2012-02-14 00:01:22

2013-10-15 13:24:00

负载均衡架构

2010-08-12 17:29:39

网站运维容量规划

2020-04-27 10:00:53

负载均衡互联网架构

2010-07-02 09:17:29

技能运维人员

2012-02-15 00:32:27

haproxy负载均衡

2011-03-17 09:27:07

HAProxy负载均衡

2011-08-24 13:45:49

HAProxy负载均衡负载均衡器

2010-04-20 15:27:20

负载均衡
点赞
收藏

51CTO技术栈公众号