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

简介:

近期朋友刘鑫的网站成功上线并运营了,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种:

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

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

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

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

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

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

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

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

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


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










本文转自 抚琴煮酒 51CTO博客,原文链接:http://blog.51cto.com/yuhongchun/1281056,如需转载请自行联系原作者
相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
4月前
|
运维 负载均衡 应用服务中间件
安全运维-Nginx服务器就该这么玩~
安全运维-Nginx服务器就该这么玩~
69 0
|
8月前
|
运维 负载均衡 算法
【运维知识进阶篇】集群架构-Nginx七层负载均衡详解(一)
【运维知识进阶篇】集群架构-Nginx七层负载均衡详解
206 0
|
8月前
|
运维 负载均衡 NoSQL
【运维知识进阶篇】集群架构-Nginx七层负载均衡详解(二)
【运维知识进阶篇】集群架构-Nginx七层负载均衡详解(二)
141 0
|
8月前
|
运维 负载均衡 网络协议
【运维知识进阶篇】集群架构-Nginx四层负载均衡详解
【运维知识进阶篇】集群架构-Nginx四层负载均衡详解
227 0
|
11月前
|
弹性计算 运维 负载均衡
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——负载均衡CLB(上)-产品和架构(2)
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——负载均衡CLB(上)-产品和架构(2)
145 0
|
11月前
|
弹性计算 运维 负载均衡
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——负载均衡CLB(上)-产品和架构(1)
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——负载均衡CLB(上)-产品和架构(1)
207 0
|
11月前
|
弹性计算 运维 负载均衡
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——负载均衡CLB(上)-产品和架构(4)
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——负载均衡CLB(上)-产品和架构(4)
153 0
|
11月前
|
运维 负载均衡 调度
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——负载均衡CLB(上)-产品和架构(5)
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——负载均衡CLB(上)-产品和架构(5)
117 0
|
11月前
|
tengine 弹性计算 运维
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——负载均衡CLB(上)-产品和架构(3)
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——负载均衡CLB(上)-产品和架构(3)
156 0
|
11月前
|
域名解析 运维 负载均衡
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——负载均衡CLB(中)-最佳实践(1)
《企业运维之云上网络原理与实践》——第二章 负载均衡 CLB——负载均衡CLB(中)-最佳实践(1)
197 0