`

负载均衡

阅读更多

现在网站发展的趋势对网络负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术:
一种是通过硬件来进行,常见的硬件有比较昂贵的NetScaler、F5、Radware和Array等商用的负载均衡器,它的优点就是有专业的维护团队 来对这些服务进行维护、缺点就是花销太大,所以对于规模较小的网络服务来说暂时还没有需要使用;另外一种就是类似于LVS/HAProxy、Nginx的 基于Linux的开源免费的负载均衡软件策略,这些都是通过软件级别来实现,所以费用非常低廉,所以也比较推荐大家采用第二种方案来实施自己网站的负 载均衡需求。


在这里有一点要跟大家申明下:很多朋友担心软件级别的负载均衡在高并发流量冲击下的稳定情况,事实是通过成功上线的许多网站发现,它们的稳定性也 是非常好的,宕机的可能性微乎其微。相信大家对这些软件级别的负载均衡软件都已经有了很深的的认 识,下面就它们的特点和适用场合分别说明下。

 

LVS:使用集群技术和Linux操作系统实现一个高性能、高可用的服务器,它具有很好的可伸缩性(Scalability)、可靠性(Reliability)和可管理性(Manageability),感谢章文嵩博士为我们提供如此强大实用的开源软件。

 

  • LVS的特点是:

1、抗负载能力强、是工作在网络4层之上仅作分发之用,没有流量的产生,这个特点也决定了它在负载均衡软件里的性能最强的;
2、配置性比较低,这是一个缺点也是一个优点,因为没有可太多配置的东西,所以并不需要太多接触,大大减少了人为出错的几率;
3、工作稳定,自身有完整的双机热备方案,如LVS+Keepalived和LVS+Heartbeat,不过在项目实施中用得最多的还是LVS/DR+Keepalived;
4、无流量,保证了均衡器IO的性能不会收到大流量的影响;
5、应用范围比较广,可以对所有应用做负载均衡;
6、软件本身不支持正则处理,不能做动静分离,这个就比较遗憾了;其实现在许多网站在这方面都有较强的需求,这个是Nginx/HAProxy+Keepalived的优势所在。
7、如果是网站应用比较庞大的话,实施LVS/DR+Keepalived起来就比较复杂了,特别后面有Windows Server应用的机器的话,如果实施及配置还有维护过程就比较复杂了,相对而言,Nginx/HAProxy+Keepalived就简单多了。

 

  • Nginx的特点是:

1、工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构,它的正则规则比HAProxy更为强大和灵活,这也是许多朋友喜欢它的原因之一;
2、Nginx对网络的依赖非常小,理论上能ping通就就能进行负载功能,这个也是它的优势所在;
3、Nginx安装和配置比较简单,测试起来比较方便;
4、也可以承担高的负载压力且稳定,一般能支撑超过几万次的并发量;
5、Nginx可以通过端口检测到服务器内部的故障,比如根据服务器处理网页返回的状态码、超时等等,并且会把返回错误的请求重新提交到另一个节点,不过其中缺点就是不支持url来检测;
6、Nginx仅能支持http和Email,这样就在适用范围上面小很多,这个它的弱势;
7、Nginx不仅仅是一款优秀的负载均衡器/反向代理软件,它同时也是功能强大的Web应用服务器。LNMP现在也是非常流行的web架构,大有和以前最流行的LAMP架构分庭抗争之势,在高流量的环境中也有很好的效果。
8、Nginx现在作为Web反向加速缓存越来越成熟了,很多朋友都已在生产环境下投入生产了,而且反映效果不错,速度比传统的Squid服务器更快,有兴趣的朋友可以考虑用其作为反向代理加速器。

 

  • HAProxy的特点是:

1、HAProxy是支持虚拟主机的,以前有朋友说这个不支持虚拟主机,这里特此更正一下。
2、能够补充Nginx的一些缺点比如Session的保持,Cookie的引导等工作
3、支持url检测后端的服务器出问题的检测会有很好的帮助。
4、它跟LVS一样,本身仅仅就只是一款负载均衡软件;单纯从效率上来讲HAProxy更会比Nginx有更出色的负载均衡速度,在并发处理上也是优于Nginx的。
5、HAProxy可以对Mysql读进行负载均衡,对后端的MySQL节点进行检测和负载均衡,不过在后端的MySQL slaves数量超过10台时性能不如LVS,所以向大家推荐LVS+Keepalived。
6、HAProxy的算法现在也越来越多了,具体有如下8种:
①roundrobin,表示简单的轮询,这个不多说,这个是负载均衡基本都具备的;
②static-rr,表示根据权重,建议关注;
③leastconn,表示最少连接者先处理,建议关注;
④source,表示根据请求源IP,这个跟Nginx的IP_hash机制类似,用其作为解决session问题的一种方法,建议关注;
⑤ri,表示根据请求的URI;
⑥rl_param,表示根据请求的URl参数’balance url_param’ requires an URL parameter name;
⑦hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求;
⑧rdp-cookie(name),表示根据据cookie(name)来锁定并哈希每一次TCP请求。

分享到:
评论

相关推荐

    负载均衡器技术Nginx和F5的优缺点对比

     目前有许多不同的负载均衡技术用以满足不同的应用需求,如软/硬件负载均衡、本地/全局负载均衡、更高网络层负载均衡,以及链路聚合技术。  我们使用的是软负载均衡器Nginx,而农行用的是F5硬负载均衡器,这里...

    流媒体服务器集群的负载均衡

    流媒体服务器(Streaming Media Server 简写MS)集群系统能够用相对较为廉价的方式提供较强的可扩展性和良好的吞吐性能,然而要使系统资源得到充分利用却面临着许多技术上的挑战,负载均衡技术就是其中之一。...

    弘积负载均衡简易运维手册

    3.2、弘积负载均衡 3.2.1、配置节点(类似F5 poolmembers) 3.2.2、配置定义健康检查 延伸:不同poolmember采用不同健康检查(与F5类似) 目录 3.2.3、配置虚拟服务(类似F5 poolmembers) 3 3.2.4、...

    天融信负载均衡配置手册

    天融信负载均衡配置手册

    公司基于VRRP的负载均衡出口链路配置.rar

    3、应用场景:公司基于VRRP的负载均衡出口链路配置 4、特点:Word文档提供了实验的详细过程,包括每一步骤的操作命令和截图,并给出了实验的topo文件(包括配置信息) 5、适用人群:网络系统的建设与运维 6、使用...

    Windows Server 2019 负载均衡(NLB)安装部署-图文

    网络负载均衡,英文名称为Network Load Balance,简称NLB。 当日常工作业务量较大、网络负荷过重时,我们就需要将业务进行负载,来保障服务器的高可用性,高稳定性。负载均衡可以对服务器的运行状况进行监控,及时...

    基于动态反馈的负载均衡算法

    基于动态反馈的负载均衡算法基于动态反馈的负载均衡算法基于动态反馈的负载均衡算法基于动态反馈的负载均衡算法

    负载均衡A10考试题库

    负载均衡A10考试题库

    SAP 应用服务负载均衡的实现

    SAP 应用服务负载均衡的实现SAP 应用服务负载均衡的实现

    LVS+Keepalived高可用负载均衡集群

    需要负载均衡方案!商业的硬件如F5又太贵,你们又是创业型互联公司如何有效节约成本,节省不必要的浪费?同时实现商业硬件一样的高性能高可用的功能?有什么好的负载均衡可伸张可扩展的方案吗?答案是肯定的!有!...

    实现多服务器负载均衡

    探讨分布式网络服务器使用的负载均衡技术及负载分配的策略,并基于网络地址转换在FreeBSD上实现了负载均衡网关,应用于我们的Internet网络服务器上,将负载分给多个服务器分担,以解决Internet服务器面临的大量并发...

    负载均衡开源解决方案

    负载均衡(Load Balancing) 负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强 ...

    H3C负载均衡配置指导

    负载均衡配置指导帮助设置防火墙负载均衡的操作,有一定的帮助。

    MySQL Proxy 实现负载均衡测试

    MySQL Proxy 实现负载均衡测试 MySQL Proxy 实现负载均衡测试

    apache2.2.4 负载均衡.txt

    apache2.2.4 负载均衡.txtapache2.2.4 负载均衡.txtapache2.2.4 负载均衡.txt随着访问量的不断提高,以及对响应速度的要求,进行负载均衡设置就显得非常必要了。公司的系统在最初设计的时候就已经考虑到了负载均衡的...

    导致内部负载均衡器间歇性丢包或负载不均衡的常见因素-Bing1

    后端个别服务器网卡配置了NSG拒绝策略(例如443端口),但是负载均衡器的运行状况探测配置了其他端口(例如80端口)作为负载均衡器检查后端服务器的健康状态的判断

    Elasticsearch的分布式架构、负载均衡、高可用以及容错性看这一篇就够了

    开箱即用,简单粗暴Elasticsearch天然支持分布式和集群,开箱即用,零配置,零改动。自动分片一个index默认5个primaryshard,那么我们创建一个document,他给我们分配到哪个shard...shard负载均衡假设我们有1个index,

    负载均衡最佳实践

    本书详述了mysql负载均衡最佳实践方法

    rabbitmq 负载均衡代码实现

    自动进行rabbitmq的多机调用,实现负载均衡,基于python3.6进行实现。

Global site tag (gtag.js) - Google Analytics