每个服务器组均用于将客户端的请求路由至一个或多个后端服务器。ALB会通过健康检查来判断后端服务器的业务可用性。在为ALB实例添加监听时您需要指定服务器组,监听会使用已配置的协议和端口检查客户端的连接请求,并将流量转发至相应的服务器组。
ALB服务器组分类及说明
创建ALB服务器组及添加后端服务器的操作,请参见创建和管理服务器组。
服务器组类型 | 后端服务器类型 | 说明 | 参考 |
服务器类型 | 该类型服务器组支持添加ECS、ENI、ECI实例作为后端服务。 | 添加的云服务器需与服务器组所属同一VPC。云服务器作为后端服务,接收来自ALB转发的请求。 | 关于ECS作为后端服务的教程,请参见: |
IP类型 | 该类型服务器组支持添加IP地址作为后端服务。 |
| 关于跨域挂载的使用限制及相关教程,请参见: |
函数计算类型 | 该类型服务器组支持添加函数计算作为后端服务。 | 需开通函数计算服务,且函数计算和ALB实例属于同一地域。 | 关于函数计算作为后端服务的教程,请参见ALB添加函数计算FC作为后端服务。 |
ALB实例的后端服务器被释放或私有IP地址被修改后,ALB不会联动更新后端服务器。建议您在释放或修改ALB后端服务器时,先在ALB服务器组中移除该后端服务器,确保不影响业务。
调度算法
ALB支持的调度算法如下。详细调度算法逻辑请参见负载均衡调度算法介绍。
加权轮询:权重值越高的后端服务器,被轮询到的次数(概率)也越高。
加权最小连接数:除了根据每台后端服务器设定的权重值来进行轮询,同时还考虑后端服务器的实际负载(即连接数)。当权重值相同时,当前连接数越小的后端服务器被轮询到的次数(概率)也越高。
一致性哈希:相同的源地址会调度到相同的后端服务器。
选择哈希因子:选择一种哈希因子。
源IP:相同的源IP地址会调度到相同的后端服务器。
URL参数:相同的URL参数会调度到相同的后端服务器。请输入指定URL参数。
配置ALB后端协议与健康检查协议
下表总结了ALB不同监听协议下后端服务器及健康检查协议的支持情况。
监听协议 | 服务器组后端协议 | 服务器组类型 | 健康检查协议 |
HTTP | HTTP、HTTPS | 服务器类型、IP类型、函数计算类型 说明 函数计算的服务器组类型,无需配置后端协议和健康检查协议。 | HTTP、HTTPS、TCP、gRPC 说明 标准版及以上版本的ALB实例支持配置HTTPS健康检查协议,基础版ALB实例不支持。 |
HTTPS | HTTP、HTTPS、gRPC 说明
| ||
QUIC | HTTP |
健康检查
您可以配置健康检查来检查服务器组的运行状况,从而判断服务器的业务可用性。
ALB支持基于每个服务器组定义ALB实例的健康检查配置。每个服务器组默认开启健康检查。
在开启健康检查时,默认情况下,ALB会自动将客户端请求路由至健康检查状态正常的服务器,并将持续对该服务器组的所有后端服务器的运行状况进行监控。服务器必须通过连续n次的健康检查才会被视为正常(n为配置的健康检查健康阈值,多次健康检查是为了避免网络抖动的影响)。
当某台后端服务器健康检查出现异常时,ALB会自动将新的请求分发到其他健康检查正常的后端服务器。
当该服务器恢复正常运行时,ALB会将其自动恢复到负载均衡服务中。
健康检查为短连接,完成健康检查后连接将关闭。
如果后端服务器权重设置为0,该服务器不会参与健康检查。
如果同一个服务器组中仅包含健康检查异常的服务器时,ALB仍会尝试根据调度算法将请求路由至这些服务器,而不考虑这些服务器的运行状况,以最大可能避免您的业务受损。更多信息,请参见同一个服务器组的所有后端服务器健康检查均异常时,ALB如何转发请求?。
更多信息,请参见健康检查。
会话保持
默认情况下,ALB会将每个客户端请求分别分发至不同的后端服务器上。当您开启了会话保持功能后,会话保持可以使来自同一客户端的请求被转发至同一台后端服务器上,方便后端服务器维护状态信息及向客户端提供持续体验。
未开启会话保持:同一客户端的请求通过ALB可能会被分发至不同的后端服务器,在某些场景下,如登录后端服务器获取交互信息等场景,客户端的请求可能需重新登录后端服务器。
开启会话保持:同一客户端的请求通过ALB被分配至同一台后端服务器,而非分配至不同的后端服务器,在某些场景下,如登录后端服务器获取交互信息等场景,避免了客户端的请求需要重新登录后端服务器。
函数计费类型的服务器组不支持配置会话保持。
更多信息,请参见ALB配置会话保持。
后端长连接
当开启后端长连接后,ALB到后端服务器之间会维持一定数量的TCP长连接,当新请求到达时,如果有空闲的TCP长连接,ALB优先使用TCP长连接转发请求到后端服务器,从而减少TCP握手建连次数,减轻后端服务器压力。
函数计算类型的服务器组不支持配置后端长连接。
更多信息,请参见创建服务器组。