负载均衡算法选择配置

2022-08-31 09:41:19

应用场景

在为业务配置负载均衡时,需要选择合适的流量分发算法,对流量进行负载分发。选择合理的负载均衡算法,可避免服务器负载不均,部分服务器负载过高影响服务性能。

算法原理

算法加权轮询算法
Weighted Round-Robin Scheduling
最小连接数Least-Connection Scheduling
源地址散列调度算法 ip_hash
原理轮询调度算法就是以轮询的方式依次将请求调度不同的服务器。加权轮询调度算法可以解决服务器间性能不一的情况,它用相应的权值表示服务器的处理性能,按权值的高低和轮询方式分配请求到各服务器。权值高的服务器先收到的连接,权值高的服务器比权值低的服务器处理更多的连接,相同权值的服务器处理相同数目的连接数。
在实际情况中,客户端的每一次请求服务在服务器停留的时间可能会有较大的差异,随着工作时间的延伸,如果采用简单的轮询或随机均衡算法,每一台服务器上的连接进程数目可能会产生极大的不同,这样实际上并没有达到真正的负载均衡。最小连接调度是一种动态调度算法,它通过服务器当前所活跃的连接数来评估服务器的负载情况。与轮询调度算法相反。调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器,其连接数加1;当连接中止或超时,其连接数减1。根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
优势轮询算法的优点是其简洁性和实用性。它无需记录当前所有连接的状态,所以它是一种无状态调度。此种均衡算法适合长时处理的请求服务,如 FTP 等应用。ip_hash可以实现部分会话保持的效果,能够记住源 IP,使某一客户端请求通过 hash 表一直映射在同一台后端主机上。
劣势加权轮询调度算法相对简单,但不适用于请求服务时间变化比较大,或者每个请求所消耗的时间不一致的情况,此时轮询调度算法容易导致服务器间的负载不平衡。对短连接的服务,服务器连接数变化过于频繁,没有明显优势在访问量差异大的场景,容易导致负载不均
适用场景每个请求所占用的后端时间基本相同,负载情况最好。常用于短连接服务,例如 HTTP 等服务。每个请求所占用的后端时间相差较大的场景。常用于长连接服务。
适用于TCP/UDP协议类型的负载均衡,在不支持会话保持的场景可以使用 ip_hash 进行调度。

前提条件

  • 已在所在可用区创建VPC,并创建业务主机,完成服务配置;

  • 已创建负载均衡实例。

操作步骤

1.    点击ELB实例名称,进入监听器配置页面;

图片

2.    在监听器页面,点击【添加监听器】按钮,创建监听器;

图片

3.    在监听器创建页面填写监听器名称,选择协议,填写监听端口,描述,完成后点击【下一步】;

图片

4.    创建后端主机组,选择后端云主机,添加到后端主机组,添加完成点击【下一步】;

图片

5.    进入【负载均衡&健康检查】配置页面,在负载方式字段选择负载均衡算法,并完成会话保持、健康检查等其它配置;

图片

6.    点击【立即创建】完成配置并创建监听器。

dbhbqoGjZd_L