在一个典型的高并发、大用户量的Web互联网系统的架构设计中,对HTTP集群的负载均衡设计是作为高性能系统优化环节中必不可少的方案。
在一个典型的高并发、大用户量的Web互联网系统的架构设计中,对HTTP集群的负载均衡设计是作为高性能系统优化环节中必不可少的方案。HTTP负载均衡的本质上是将Web用户流量进行均衡减压,因此在互联网的大流量项目中,其重要性不言而喻。
常用的均衡算法有哪些?
主要的均衡算法有:
1)轮询策略;
2)负载度策略;
3)响应策略;
4)哈希策略。
[[271838]]
1.轮询策略
轮询策略其实很好理解,就是当用户请求来了之后,「负载均衡器」将请求轮流的转发到后端不同的业务服务器上。这个策略在DNS方案中用的比较多,无需关注后端服务的状态,只药有请求,就往后端轮流转发,非常的简单、实用。
在实际应用中,轮询也会有多种方式,有按顺序轮询的、有随机轮询的、还有按照权重来轮询的。前两种比较好理解,第三种按照权重来轮询,是指给每台后端服务设定一个权重值,比如性能高的服务器权重高一些,性能低的服务器给的权重低一些,这样设置的话,分配流量的时候,给权重高的更多流量,可以充分的发挥出后端机器的性能。
2.负载度策略
负载度策略是指当「负载均衡器」往后端转发流量的时候,会先去评估后端每台服务器的负载压力情况,对于压力比较大的后端服务器转发的请求就少一些,对于压力比较小的后端服务器可以多转发一些请求给它。
这种方式就充分的结合了后端服务器的运行状态,来动态的分配流量了,比轮询的方式更为科学一些。
但是这种方式也带来了一些弊端,因为需要动态的评估后端服务器的负载压力,那这个「负载均衡器」除了转发请求以外,还要做很多额外的工作,比如采集 连接数、请求数、CPU负载指标、IO负载指标等等,通过对这些指标进行计算和对比,判断出哪一台后端服务器的负载压力较大。
因此这种方式带来了效果优势的同时,也增加了「负载均衡器」的实现难度和维护成本。
3.响应策略
响应策略是指,当用户请求过来的时候,「负载均衡器」会优先将请求转发给当前时刻响应最快的后端服务器。
也就是说,不管后端服务器负载高不高,也不管配置如何,只要觉得这个服务器在当前时刻能最快的响应用户的请求,那么就优先把请求转发给它,这样的话,对于用户而言,体验也最好。
那「负载均衡器」是怎么知道哪一台后端服务在当前时刻响应能力最佳呢?
这就需要「负载均衡器」不停的去统计每一台后端服务器对请求的处理速度了,比如一分钟统计一次,生成一个后端服务器处理速度的排行榜。然后「负载均衡器」根据这个排行榜去转发服务。
那么这里的问题就是统计的成本了,不停的做这些统计运算本身也会消耗一些性能,同时也会增加「负载均衡器」的实现难度和维护成本。
4.哈希策略
Hash策略也比较好理解,就是将请求中的某个信息进行hash计算,然后根据后端服务器台数取模,得到一个值,算出相同值的请求就被转发到同一台后端服务器中。
常见的用法是对用户的IP或者ID进行这个策略,然后「负载均衡器」就能保证同一个IP来源或者同一个用户永远会被送到同一个后端服务器上了,一般用于处理缓存、会话等功能的时候特别好用。
责任编辑:武晓燕 来源: 今日头条
分享到微信
微信扫码分享
分享到微博相关推荐
Nginx何防止流量攻击,大部分程序员都收藏了...
大家都知道服务器资源有限的,但是客户端来的请求是无限的(不排除恶意攻击),为了保证大部分的请求能够正常响应,不得不放弃一些客户端来的请求,所以我们会采用Nginx的限流操作。2019-09-12 09:56:13
HTTP协议中的长连接,读完之后,大部分程序员收藏了...
HTTP1.1规定了默认保持长连接,数据传输完成了保持TCP连接不断开(不发RST包、不四次握手),等待在同域名下继续用这个通道传输数据;相反的就是短连接。2019-11-24 19:34:04
CDN与缓存全面详聊,看完之后,大部分程序员收藏了...
缓存是一个到处都存在的用空间换时间的例子。通过使用多余的空间,我们能够获取更快的速度。我们通常意义上说的缓存主要包含两部分。第一个是用户浏览器端的缓存,第二个是服务器端为了提高访问速度而加的CDN。2020-03-03 18:59:47
大部分程序员都搞错了,硬盘真的很慢么?
缓存是每个程序员所熟知的,相信大家对缓存都已经不陌生了,缓存使用传输更快的介质来存储更加频繁读写的数据。在程序员面试中,我们常常会这样回答,因为硬盘的读写速度太慢,事实真的是如此么?2019-10-11 10:05:30
Java程序计数器刨根问底,大部分程序员都收藏起来了
程序计数器是当前线程正在执行的字节码的地址。程序计数器是线程隔离的,每一个线程在工作的时候都有一个独立的计数器。2019-08-09 11:25:01
为什么大部分程序员都无法成为架构师?努力背后的真相
大家是否思考过,为什么大部分程序员很难真正成为一个架构师?2021-11-30 22:59:28
MySQL数据库表大小写不敏感处理,看完之后,大部分程序员收藏了
本文总结了MySQL数据库表大小写不敏感的处理,快来看看吧,大部分程序员收藏了!2019-09-23 20:00:34
性能测试很简单么,大部分程序员都会犯下面3个错误
在程序员面试中,有一个非常经典的问题,你们的系统性能怎么样?你是怎么得到这个结果的。不知道你有没有遇到过。可能很多人都已经知道如何去衡量自己系统的性能,但却敌不住面试官的第二个问题,如何得到这个结果。2020-04-15 16:07:01
阿里程序员常用的15个高效工具,大部分已开源!
阿里将自身在各类业务场景下的技术积淀,通过开源、云上实现或工具等形式对外开放,本文将精选了一些阿里巴巴的开发者工具,希望能帮助开发者们提高开发效率、更优雅的写代码。2019-06-12 10:35:49
大部分程序员不知道的 Servelt3 异步请求,原来这么简单?
想象一下如果业务需要较长时间处理,那么这个Tomcat线程其实一直在被占用,随着请求越来越多,可用IO线程越来越少,直到被耗尽。这时后续请求只能等待空闲Tomcat线程,这将会加长了请求执行时间。2020-04-03 08:42:08
大部分企业都遭遇过公共云安全事件
威胁检测和响应公司VectraAI的一项新研究发现,所有受访者在过去12个月内都在其公共云环境中经历了至少一次云安全事件。2021-08-06 17:44:45
MySQL自增ID,居然大部分人都搞错了!?
《MySQL删除数据的三种方式》中的作业题,99%的人答错,有点出乎意料。今天简单说下作业题中的答案,以及知识点。2022-05-18 09:49:26
大部分IT管理员认为:云计算与己无关
根据最新一项调查发现,有74%的人认为云计算与自己所从事的业务没有关联,8%的受访者虽然在使用云计算但只涉及其中一项或两项服务内容。2011-11-09 09:59:21
云计算IT管理
做Data Mining,其实大部分时间都花在清洗数据
很多初学的朋友对大数据挖掘第一直观的印象,都只是业务模型,以及组成模型背后的各种算法原理。往往忽视了整个业务场景建模过程中,看似最普通,却又最精髓的特征数据清洗。可谓是平平无奇,却又一掌定乾坤,稍有闪失,足以功亏一篑。2016-12-12 18:45:08
Data Mining大数据
NASA大部分云计算活动都缺乏安全保护措施
近日,NASA总检察官发布了一份关于NASA云计算的安全性能报告。他在报告中指出,该机构所运行的大部分云计算活动都缺乏安全保护性能有些数据甚至还存在可能被曝光在外面的危险。另外,他还表示,他在NASA跟云端服务供应商签订的5份合同中也找不到任何关于数据保护的安全措施。2013-07-30 11:15:35
服务、网关、NGINX 这些负载均衡都解决哪些问题?
在配合工作时,Nginx可以将外部请求转发到网关服务。网关服务会根据请求的路径、参数或其他标识来确定请求应该被路由到哪个微服务。网关可以使用Nginx提供的负载均衡算法,将请求均匀地分发到多个后端微服务实例上。2023-10-08 07:15:54
HTTPS有多安全?保护大部分网络的协议入门
当我们使用此协议访问某个网站时,将进入一个使用更安全的加密协议的平台,该协议比非加密协议要安全得多。如果网站确实使用HTTPS,可以在其地址旁边看到一个挂锁图标。2023-09-21 10:28:22
HTTPS加密协议
每个程序员都应该知道的六种负载均衡算法
一个大型网络平台能轻松面对数百万请求而不产生崩溃,负载均衡器(LoadBalancer)是绝对的关键组件。2023-11-02 14:21:06
SQL Server 2005分析服务的4大部分
我们今天主要是对SQLServer2005分析服务的介绍,以下就是文章的主要内容的详细解说,望大家会对其有更好的了解。2010-07-07 14:47:03
SQL Server
程序员有哪些必备技能?
对于一个技术人员来说,编程技能是最为基本的能力,它能完成工作中的需求和任务.除此之外,还有一些其它应该具备的基础技能,这些技能每个人或多或少都有一点,只是平时没有注意,也没有刻意研究和学习,以至于有一种鸡汤式的概念,自己觉得自己不行,或者自己觉得自己还不错.2019-09-25 11:39:07
相似话题
服务器产品
1466内容
芯片
990内容
数据中心
4992内容 全部话题同话题下的热门内容
相关专题 更多
2024 Google 开发者大会
HarmonyOS创新探索与应用实践· 开发者系列沙龙
2024-08-07 16:28:10
惠普ZBook Fury G11移动工作站评测
2024-08-01 11:44:12
我收藏的内容
微博
微信