负载均衡实施 应该因地制宜

简介:

在项目实施中发现,有些公司是做宣传网站或资讯类网站的,服务器均置于国内,他们对集群这 块了解的并不深,而且要求也很简单,只要求1+2架构。在初期我使用的是 Nginx作为负载均衡器,后期发现HAProxy更加稳定,而且它自带强大的监控页面功能,所以我全部换成了HAproxy作为最前端的负载均衡器了; 由于我越来越喜欢它了,在这里请允许我单独介绍其优点。

HAProxy是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,HAProxy是完全免费的、借助HAProxy可以快速并且可靠的提供基于TCP和HTTP应用的代理解决方案。
HAProxy最主要的特点是性能优越,HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。 HAProxy完全可以支持数以万计的并发连接。并且HAProxy的运行模式使得它可以很简单安全的整合进您当前的架构中,同时可以保护你的web服务器不被暴露到网络上(即通过防火墙80端口映射的方法)。
更重要的是,HAProxy也是一款优秀的负载均衡软件,其优点如:
1.免费开源,稳定性也是非常好,这个可通过我做的一些小项目可以看出来,单Haproxy也跑得不错,稳定性可以与硬件级的F5相媲美;
2.根据官方文档,HAProxy可以跑满10Gbps-New benchmark of HAProxy at 10 Gbps using Myricom's 10GbE NICs (Myri-10G PCI-Express),这个数值作为软件级负载均衡器是相当惊人的;
3.HAProxy 支持连接拒绝 : 因为维护一个连接的打开的开销是很低的,有时我们很需要限制攻击蠕虫(attack bots),也就是说限制它们的连接打开从而限制它们的危害。 这个已经为一个陷于小型DDoS攻击的网站开发了而且已经拯救了很多站点,这个优点也是其它负载均衡器没有的。
4.HAProxy 支持全透明代理(已具备硬件防火墙的典型特点): 可以用客户端IP地址或者任何其他地址来连接后端服务器. 这个特性仅在Linux 2.4/2.6内核打了cttproxy补丁后才可以使用. 这个特性也使得为某特殊服务器处理部分流量同时又不修改服务器的地址成为可能。
5.HAProxy现多于线上的Mysql集群环境,我们常用于它作为MySQL(读)负载均衡;
6.自带强大的监控服务器状态的页面,实际环境中我们结合Nagios进行邮件或短信报警,这个也是我非常喜欢它的原因之一;
7.HAProxy支持虚拟主机,许多朋友说它不支持虚拟主机是错误的,通过测试我们知道,HAProxy是支持虚拟主机的。

另外,提到Nginx作负载均衡器,这个由于我自己也比较喜欢它的强大的正则处理功能和其强悍的抗并发能力,所以我在自己的博客及 51cto.com上推行它的Nginx+Keepalived,并成功用此架构帮许多客户实施他们的网站,Nginx对网络的依赖性非常小,理论上只要 ping得通它就就能实现它的负载均衡能力,这一点跟LVS不一样。我去年在一家公司准备实施LVS+Keepalived时,发现它的网络环境太复杂 了,每台机器都是7、8静态路由,网络中还有二个网关,LVS实现不了转发功能;最后还是换成了Nginx+Keepalived。

现在我觉得Nginx作为最前端的负载均衡并不是一个非常理想的选择,一个大型的网站或系统的 话,可以存在多级代理,比如我们最前端可以用F5或 LVS来作为网站或系统的入口,让它们来顶外部的高并发流量,而Nginx由于其强大的正则处理能力,可以作为中层代理,一来可以作为F5/LVS的补 充,节约大量成本,这种做法也是张宴兄推荐的,架构图也很简单,即F5/LVS -->Nginx(多台)-->web集群。

大家可以看一下基于架构的好处有:
一、不需要担心单Nginx负载均衡器crash的问题,随便怎么挂都可以;
二、Nginx作为F5的补充,利用其强大的upstream模块和正则,可以轻松实现动静分离;
三、压缩可以通过nginx做,这样,后台应用服务器不管是apache、resin、lighttpd甚至iis或其他古怪服务器,都不用考虑压缩的功能问题。
四、方便的运维管理,在各种情况下可以灵活制订方案;
五、即使没有squid群组,Nginx现在可以做为优秀的反向代理加速软件了。

我现在做的项目网站,原理跟上面类似,只不过用的是LVS代替了F5,这个更节约资金了,拓朴图如下所示:


现在的负载均衡均衡技术是多样化的,我们应该根据其特点做到因地制宜,取长补短,最大限度的发挥它们的优点,将我们的网站或系统架构调优到一个新的高度。










本文转自 抚琴煮酒 51CTO博客,原文链接:http://blog.51cto.com/yuhongchun/608542,如需转载请自行联系原作者
相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
1月前
|
负载均衡 网络协议 安全
技术浅析:基于云的DNS负载均衡如何实现?
技术浅析:基于云的DNS负载均衡如何实现?
39 6
|
负载均衡 算法
彻底揭秘负载均衡算法与实现!深入剖析负载均衡核心(下)
彻底揭秘负载均衡算法与实现!深入剖析负载均衡核心
131 0
彻底揭秘负载均衡算法与实现!深入剖析负载均衡核心(下)
|
负载均衡 算法
彻底揭秘负载均衡算法与实现!深入剖析负载均衡核心(中)
彻底揭秘负载均衡算法与实现!深入剖析负载均衡核心
104 0
彻底揭秘负载均衡算法与实现!深入剖析负载均衡核心(中)
|
tengine 负载均衡 算法
彻底揭秘负载均衡算法与实现!深入剖析负载均衡核心(上)
彻底揭秘负载均衡算法与实现!深入剖析负载均衡核心
99 0
|
弹性计算 负载均衡 数据安全/隐私保护
DLB负载均衡实践
在高并发的情况下,经常会导致服务器响应速度慢,严重的情况会直接导致服务器停止服务。此时,会导致企业的业务中断,影响客户的正常访问。 本场景通过使用阿里云负载均衡SLB以及对负载均衡SLB后端服务器ECS的权重进行修改,可以快速解决上述的问题。
DLB负载均衡实践
|
负载均衡
如何实施异构服务器的负载均衡及过载保护?
能否根据异构服务器的处理能力来动态、自适应进行负载均衡及过载保护,是本文要讨论的问题。
838 0
|
负载均衡
过载保护+异构服务器的负载均衡,怎么设计?
负载均衡是指,将请求/数据分摊到多个操作单元上执行,关键在于均衡。
647 0
|
Web App开发 负载均衡 算法