海量运维常用技术之--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)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
8天前
|
运维 监控
现代运维中的自动化技术应用与挑战
现代运维工作中,自动化技术的应用已成为提高效率、降低成本的重要手段。本文探讨了自动化技术在运维领域的应用现状和挑战,包括自动化工具的选择、实施过程中的注意事项以及未来发展趋势。通过深入分析,帮助读者更好地理解和应用自动化技术,提升运维工作效率。
32 2
|
8天前
|
消息中间件 缓存 负载均衡
大型网站集群管理负载均衡
结合企业大规模应用,解决应用高并发问题,解决单节点故障问题,缓存数据库的应用。学完掌握知识点:企业应用实现四七层负载均衡,以及Nginx等应用的高可用性,Redis缓存数据库的部署应用以及高可用方式,Rabbitmq消息队列的部署应用以及高可用方
19 2
大型网站集群管理负载均衡
|
8天前
【技术干货连载 二】SLB 408问题排查
SLB 408问题排查思路和方法
19 0
|
8天前
|
人工智能 运维 监控
现代化运维系统的关键技术与挑战
随着信息技术的快速发展,现代化运维系统成为企业管理的重要组成部分。本文将探讨现代化运维系统中的关键技术和面临的挑战,从自动化运维、容器化技术到监控与安全性等方面展开讨论,帮助读者更好地理解和应对运维领域的挑战。
|
8天前
|
运维 安全 数据安全/隐私保护
课1-数据可信流通,从运维信任到技术信任
构建数据可信流通体系,关键在于建立技术信任。该体系基于信任四要素:身份确认、利益依赖、能力预期及行为后果。数据内循环时,持有方负责数据安全;外循环则面临责任主体不清等问题。为实现可信流通,需由运维信任转向技术信任,依托密码学和可信计算技术,并遵循数据二十条政策。技术手段包括可信应用身份、使用权跨域管控、安全分级标准和全链路审计,确保内外循环的数据管控。基础设施——密态天空计算,支持以隐私计算为核心的密态数联网,实现责任界定的全链路数据安全。
|
8天前
|
机器学习/深度学习 人工智能 运维
《未来智能运维:AI技术的应用与展望》
在当今数字化时代,智能运维正日益成为企业提升效率、降低成本的关键。本文将探讨人工智能技术在运维领域的应用现状与未来发展趋势,展望未来智能运维的发展前景。
240 1
|
6天前
|
运维 Oracle 容灾
Oracle dataguard 容灾技术实战(笔记),教你一种更清晰的Linux运维架构
Oracle dataguard 容灾技术实战(笔记),教你一种更清晰的Linux运维架构
|
6天前
|
运维 Linux
CentOS系统openssh-9,你会的还只有初级Linux运维工程师的技术吗
CentOS系统openssh-9,你会的还只有初级Linux运维工程师的技术吗
|
8天前
|
运维 负载均衡 Cloud Native
Serverless 应用引擎产品使用之在Serverless 应用引擎中,使用云原生网关的情况下,SLB(负载均衡器)和证书配置如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
28 1