高性能HTTP服务端的负载均衡算法有哪些?大部分程序员都收藏了...

服务器 算法
在一个典型的高并发、大用户量的Web互联网系统的架构设计中,对HTTP集群的负载均衡设计是作为高性能系统优化环节中必不可少的方案。

 在一个典型的高并发、大用户量的Web互联网系统的架构设计中,对HTTP集群的负载均衡设计是作为高性能系统优化环节中必不可少的方案。HTTP负载均衡的本质上是将Web用户流量进行均衡减压,因此在互联网的大流量项目中,其重要性不言而喻。

常用的均衡算法有哪些?

主要的均衡算法有:

1)轮询策略;

2)负载度策略;

3)响应策略;

4)哈希策略。

[[271838]]

1.轮询策略

轮询策略其实很好理解,就是当用户请求来了之后,「负载均衡器」将请求轮流的转发到后端不同的业务服务器上。这个策略在DNS方案中用的比较多,无需关注后端服务的状态,只药有请求,就往后端轮流转发,非常的简单、实用。

在实际应用中,轮询也会有多种方式,有按顺序轮询的、有随机轮询的、还有按照权重来轮询的。前两种比较好理解,第三种按照权重来轮询,是指给每台后端服务设定一个权重值,比如性能高的服务器权重高一些,性能低的服务器给的权重低一些,这样设置的话,分配流量的时候,给权重高的更多流量,可以充分的发挥出后端机器的性能。

2.负载度策略

负载度策略是指当「负载均衡器」往后端转发流量的时候,会先去评估后端每台服务器的负载压力情况,对于压力比较大的后端服务器转发的请求就少一些,对于压力比较小的后端服务器可以多转发一些请求给它。

这种方式就充分的结合了后端服务器的运行状态,来动态的分配流量了,比轮询的方式更为科学一些。

但是这种方式也带来了一些弊端,因为需要动态的评估后端服务器的负载压力,那这个「负载均衡器」除了转发请求以外,还要做很多额外的工作,比如采集 连接数、请求数、CPU负载指标、IO负载指标等等,通过对这些指标进行计算和对比,判断出哪一台后端服务器的负载压力较大。

因此这种方式带来了效果优势的同时,也增加了「负载均衡器」的实现难度和维护成本。

3.响应策略

响应策略是指,当用户请求过来的时候,「负载均衡器」会优先将请求转发给当前时刻响应最快的后端服务器。

也就是说,不管后端服务器负载高不高,也不管配置如何,只要觉得这个服务器在当前时刻能最快的响应用户的请求,那么就优先把请求转发给它,这样的话,对于用户而言,体验也最好。

那「负载均衡器」是怎么知道哪一台后端服务在当前时刻响应能力最佳呢?

这就需要「负载均衡器」不停的去统计每一台后端服务器对请求的处理速度了,比如一分钟统计一次,生成一个后端服务器处理速度的排行榜。然后「负载均衡器」根据这个排行榜去转发服务。

那么这里的问题就是统计的成本了,不停的做这些统计运算本身也会消耗一些性能,同时也会增加「负载均衡器」的实现难度和维护成本。

4.哈希策略

Hash策略也比较好理解,就是将请求中的某个信息进行hash计算,然后根据后端服务器台数取模,得到一个值,算出相同值的请求就被转发到同一台后端服务器中。

常见的用法是对用户的IP或者ID进行这个策略,然后「负载均衡器」就能保证同一个IP来源或者同一个用户永远会被送到同一个后端服务器上了,一般用于处理缓存、会话等功能的时候特别好用。

责任编辑:武晓燕 来源: 今日头条
相关推荐

2019-09-12 09:56:13

程序员技能开发者

2019-11-24 19:34:04

HTTP长连接短连接

2020-03-03 18:59:47

CDN缓存程序员

2019-10-11 10:05:30

程序员固态硬盘Google

2019-08-09 11:25:01

Java虚拟机Java程序员

2021-11-30 22:59:28

程序员IT架构师

2019-09-23 20:00:34

MySQL数据库程序员

2020-04-15 16:07:01

程序员技术数据

2019-06-12 10:35:49

程序员高效工具开源

2020-04-03 08:42:08

Servelt3程序员Tomcat

2021-08-06 17:44:45

云安全云计算网络安全

2022-05-18 09:49:26

MySQLID数据库

2011-11-09 09:59:21

云计算IT管理

2024-11-01 11:10:51

2013-07-30 11:15:35

NASA云计算安全云计算

2016-12-12 18:45:08

Data Mining大数据

2023-10-08 07:15:54

NGINX网关参数

2023-09-21 10:28:22

HTTPS加密协议

2023-11-02 14:21:06

2010-07-07 14:47:03

SQL Server
点赞
收藏

51CTO技术栈公众号