海量运维常用技术之--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,如需转载请自行联系原作者

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
4月前
|
机器学习/深度学习 人工智能 运维
智能运维加速交付:应用上线别再慢吞吞
智能运维加速交付:应用上线别再慢吞吞
154 2
|
5月前
|
传感器 边缘计算 运维
AR 虚实叠加技术在工业设备运维中的实现流程方案
AR技术通过虚实信息融合,实现工业设备参数可视化、故障立体化、操作直观化,提升运维效率与精度。结合物联网与数字孪生,打造智能运维新范式。
|
5月前
|
传感器 人工智能 运维
AR技术电力智慧运维白皮书
AR技术正重塑电力运维模式,通过“端-边-云”协同系统,实现设备可视化、远程协作与智能预警,大幅提升效率与安全性,推动电力行业迈入智能运维新时代。
|
3月前
|
数据采集 运维 监控
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
本文系统解析爬虫与自动化核心技术,涵盖HTTP请求、数据解析、分布式架构及反爬策略,结合Scrapy、Selenium等框架实战,助力构建高效、稳定、合规的数据采集系统。
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
|
4月前
|
运维 Kubernetes 测试技术
应用多、交付快,研发运维怎么管?看云效+SAE 如何一站式破局
通过在云效中创建 SAE 服务连接并关联集群,团队可将应用环境直接部署到 SAE,实现从代码提交、镜像构建到 SAE 部署的自动化流水线。该集成打通了研发与运维的壁垒,特别适用于应用数量多、团队规模大、交付节奏快的组织,助力企业实现敏捷、可靠的持续交付。
|
5月前
|
运维 监控 jenkins
企业服务交付慢?运维技术其实就是“加速器”
企业服务交付慢?运维技术其实就是“加速器”
142 5
|
8月前
|
运维 Kubernetes 前端开发
传统企业如何玩转平台工程?2 个运维靠它管 50 + 应用
做了五年运维,最深刻的感悟是:技术自负是效率的天敌。以前总觉得懂 Kubectl 命令才专业,直到被平台工程打脸,真正的专业不是炫技,而是让复杂技术为业务服务。现在我常跟新人说:能让开发和厂商爽的运维,才是好运维,而 Rainbond,就是那个让所有人都爽的神器。
传统企业如何玩转平台工程?2 个运维靠它管 50 + 应用
|
6月前
|
运维 监控 应用服务中间件
运维打铁: Ruby 脚本在运维自动化中的应用探索
Ruby 是一种简洁、动态类型的编程语言,适合运维自动化任务。本文介绍了其在服务器配置管理、定时任务执行和日志分析处理中的应用,并提供了代码示例,展示了 Ruby 在运维自动化中的实际价值。
204 2
|
5月前
|
运维 数据可视化 vr&ar
AR远程协作在发电领域的运维应用方案
发电厂面临设备故障频发、运维人员经验不足、远程支持困难及维护成本高昂等挑战。为提升运维效率与设备可靠性,越来越多电厂开始采用增强现实(AR)远程协作技术。通过AR设备,现场人员可与远程专家实时协作,实现快速故障诊断与修复、可视化操作指导和精准培训支持。AR技术不仅缩短停机时间,降低运维成本,还提升了应急响应能力与决策效率,助力发电行业向智能化、高效化方向发展。
|
5月前
|
人工智能 运维 监控
云+应用一体化可观测:破局“云上困境”,让运维驱动业务增长
当云计算迈入深入上云新阶段,数智化升级的关键课题已从“简单上云”演进至“精细治云”。随着企业对云计算的依赖日益加深,如何高效管理云端资源及其稳定性成为新的挑战。为此,阿里云推出云+应用一体化可观测方案,通过阿里云应用运维平台(Application Operation Platform,简称“AOP”)构建覆盖应用全生命周期一体化可观测产品体系,推动运维模式由被动响应向主动预防转变,实现故障的快速发现、定界与恢复,保障云上业务稳定运行。 目前,该方案已成功服务超过50家行业头部客户,为政务云平台、金融核心系统、能源调度中枢等关键基础设施提供全天候安全运维保障。
314 0

热门文章

最新文章