负载均衡实例是一个运行的负载均衡服务实体。使用负载均衡服务,您必须创建一个负载均衡实例,在实例中添加监听和后端服务器。
阿里云提供公网和私网两种类型的负载均衡服务。您可以根据业务场景选择配置对外公开或对内私有的负载均衡,系统会根据您的选择分配公网或私网服务地址。
公网类型的负载均衡实例可以通过Internet将客户端请求按照您制定的监听规则分发到添加的后端服务器ECS上。
在您创建公网负载均衡实例后,系统会为其分配一个公网服务地址,您可以将您的域名和该公网服务地址进行绑定,对外提供服务。
私网类型的负载均衡实例只能在阿里云内部使用,可以转发的请求只能来自具有负载均衡的私网访问权限的客户端。
私网负载均衡实例可以进一步对网络类型进行选择:
经典网络
如果您选择的私网负载均衡实例的网络类型是经典网络,那么您的私网负载均衡实例的服务地址由阿里云统一分配和管理。该私网负载均衡服务只能被经典网络ECS实例访问。
专有网络
如果您选择的私网负载均衡实例的网络类型是专有网络,那么您的私网负载均衡实例的服务地址会从您指定的专有网络的交换机网段内分配。该私网负载均衡服务只能被相同VPC内的ECS实例访问。
负载均衡性能保障型实例提供了可保障的性能指标。与之相对的是负载均衡性能共享型实例,资源是所有实例共享的,所以不保障实例的性能指标。
性能保障型实例的三个关键指标如下:
最大连接数-Max Connection
最大连接数定义了一个负载均衡实例能够承载的最大连接数量。当实例上的连接超过规格定义的最大连接数时,新建连接请求将被丢弃。
每秒新建连接数-Connection Per Second (CPS)
每秒新建连接数定义了新建连接的速率。当新建连接的速率超过规格定义的每秒新建连接数时,新建连接请求将被丢弃。
每秒查询数-Query Per Second (QPS)
每秒请求数是七层监听特有的概念,指的是每秒可以完成的HTTP/HTTPS的查询(请求)的数量。当请求速率超过规格所定义的每秒查询数时,新建连接请求将被丢弃。
确保负载均衡实例的地域和后端添加的云服务器ECS的地域相同。
您可以为专有网络类型的SLB实例绑定一个EIP。绑定后,SLB实例便可以转发来自公网的请求。
创建负载均衡实例后,您需要为实例配置监听。负载均衡实例监听负责检查连接请求,然后根据调度算法定义的转发策略将请求流量分发至后端服务器。
负载均衡提供四层(TCP/UDP协议)和七层(HTTP/HTTPS协议)监听。
端口用来接收请求并向后端服务器进行请求转发的监听端口,端口范围为1-65535。
负载均衡支持轮询、加权轮询(WRR)、加权最小连接数(WLC)三种调度算法。
加权轮询:权重值越高的后端服务器,被轮询到的次数(概率)也越高。
轮询:按照访问顺序依次将外部请求依序分发到后端服务器。
加权最小连接数:除了根据每台后端服务器设定的权重值来进行轮询,同时还考虑后端服务器的实际负载(即连接数)。当权重值相同时,当前连接数越小的后端服务器被轮询到的次数(概率)也越高。
一致性哈希(CH):
源IP:基于源IP地址的一致性hash,相同的源地址会调度到相同的后端服务器。
四元组:基于四元组的一致性hash(源IP+目的IP+源端口+目的端口),相同的流会调度到相同的后端服务器。
开启会话保持后,负载均衡监听会把来自同一客户端的访问请求分发到同一台后端服务器上。
TCP协议是基于IP地址的会话保持,即来自同一IP地址的访问请求转发到同一台后端服务器上。
开启访问控制后,选择一种访问控制方式:
白名单:仅转发来自所选访问控制策略组中设置的IP地址或地址段的请求,白名单适用于应用只允许特定IP访问的场景。设置白名单存在一定业务风险。一旦设置白名单,就只有白名单中的IP可以访问负载均衡监听。如果开启了白名单访问,但访问策略组中没有添加任何IP,则负载均衡监听会转发全部请求。
黑名单:来自所选访问控制策略组中设置的IP地址或地址段的所有请求都不会转发,黑名单适用于应用只限制某些特定IP访问的场景。如果开启了黑名单访问,但访问策略组中没有添加任何IP,则负载均衡监听会转发全部请求。
IPv6实例只能绑定IPv6访问控制策略组,IPv4实例只能绑定IPv4访问控制策略组。
对于按带宽计费的负载均衡实例,您可以针对不同监听设定不同的带宽峰值来限定监听的流量。实例下所有监听的带宽峰值总和不能超过该实例的带宽。
使用流量计费方式的实例默认不限制带宽峰值。
针对四层监听,后端服务器可直接获得来访者的真实IP,无需采用其它手段获取。
端口:后端服务器(ECS实例)开放用来接收请求的端口,端口范围为1-65535。同一个负载均衡实例内,后端服务器端口可以相同。
权重:后端服务器(ECS实例)的权重。权重越高的ECS实例将被分配到更多的访问请求。
权重设置为0,该服务器不会再接受新请求。
经典网络负载均衡实例的UDP监听暂不支持查看源地址。
在以下两种情况下,UDP协议监听配置需要五分钟才能生效:
移除后端服务器。
健康检查检测到异常后,将后端服务器的权重设置为0。
如果使用TCP/HTTP/HTTPS监听,TCP协议支持MSS自动协商,因此不需要额外配置。
在同一个负载均衡实例内,监听端口不可重复。
HTTP协议会话保持基于Cookie。负载均衡提供了两种Cookie处理方式:
植入Cookie:您只需要指定Cookie的过期时间。客户端第一次访问时,负载均衡会在返回请求中植入Cookie(即在HTTP/HTTPS响应报文中插入SERVERID),下次客户端携带此Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器上。
重写Cookie:可以根据需要指定HTTPS/HTTP响应中插入的Cookie。您需要在后端服务器上维护该Cookie的过期时间和生存时间。负载均衡服务发现用户自定义了Cookie,将会对原来的Cookie进行重写,下次客户端携带新的Cookie访问,负载均衡服务会将请求定向转发给之前记录到的后端服务器。
负载均衡支持按带宽计费的负载均衡实例下的所有监听共享实例的总带宽。在创建监听时,您可以设置带宽峰值也可以选择不设置。
配置:您可以对监听的带宽进行限制,但所有监听带宽峰值的总和不能超过实例的带宽峰值。
不限制:不限制带宽的情况下,实例下的监听共享实例带宽。
负载均衡通过健康检查来判断后端服务器(ECS实例)的业务可用性。健康检查机制提高了前端业务整体可用性,避免了后端ECS异常对总体服务的影响。
开启健康检查功能后,当后端某台ECS健康检查出现异常时,负载均衡会自动将新的请求分发到其它健康检查正常的ECS上;而当该ECS恢复正常运行时,负载均衡会将其自动恢复到负载均衡服务中。
如果您的业务对负载敏感性高,高频率的健康检查探测可能会对正常业务访问造成影响。您可以结合业务情况,通过降低健康检查频率、增大健康检查间隔、七层检查修改为四层检查等方式,来降低对业务的影响。但为了保障业务的持续可用,不建议关闭健康检查。
负载均衡采用集群部署。LVS集群(四层)或Tengine集群(七层)内的相关节点服务器同时承载了数据转发和健康检查职责。
针对七层(HTTP或HTTPS协议)监听,健康检查通过HTTP HEAD探测来获取状态信息。
针对四层TCP监听,为了提高健康检查效率,健康检查通过定制的TCP探测来获取状态信息。
健康检查时间窗:
健康检查时间窗由以下三个因素决定:
健康检查间隔 (每隔多久进行一次健康检查)
响应超时时间 (等待服务器返回健康检查的时间)
检查阈值 (健康检查连续成功或失败的次数)
健康检查时间窗的计算方法如下:
健康检查失败时间窗=响应超时时间×不健康阈值+检查间隔×(不健康阈值-1)
健康检查成功时间窗= (健康检查成功响应时间x健康阈值)+检查间隔x(健康阈值-1)
您可以关闭健康检查功能,但关闭健康检查后,当后端某个ECS健康检查出现异常时,负载均衡还是会把请求转发到该异常的ECS上,造成部分业务不可访问。所以建议一般情况下不要关闭健康检查。
只有HTTP和HTTPS监听支持关闭健康检查。UDP和TCP监听无法关闭健康检查。
健康检查响应超时和健康检查间隔示例:
响应超时时间:5秒
健康检查间隔:2秒
健康阈值:3次
不健康阈值:3次
健康检查失败时间窗=响应超时时间×不健康阈值+检查间隔×(不健康阈值-1),即5×3+2×(3-1)=19s。
健康检查成功时间窗= (健康检查成功响应时间×健康阈值)+检查间隔×(健康阈值-1),即(1×3)+2×(3-1)=7s。
在使用负载均衡服务前,您需要添加ECS实例作为负载均衡实例的后端服务器,用来接收负载均衡监听转发的请求。
负载均衡服务通过设置虚拟服务地址,将添加的同一地域的多台ECS实例虚拟成一个高性能、高可用的应用服务池。您也可以通过虚拟服务器组管理后端服务器。
不同的监听可以关联不同的服务器组,这样一个负载均衡实例可以将请求根据不同监听转发给不同的服务器组内不同端口的后端服务器。
您可以在任意时刻增加或减少负载均衡实例的后端ECS数量,还可以在不同ECS实例之间进行切换。但是为了保证您对外服务的稳定性,确保在执行上述操作时,开启了负载均衡的健康检查功能并同时保证负载均衡实例中至少有一台正常运行的ECS。
负载均衡不支持跨地域部署,确保ECS实例的所属地域和负载均衡实例的所属地域相同。
负载均衡本身不会限制后端ECS实例使用哪种操作系统,只要您的两台ECS实例中的应用服务部署是相同的且保证数据的一致性即可。
一个负载均衡实例最多支持添加50个监听,每个监听对应后端ECS实例上的一个应用。
负载均衡的监听端口对应后端ECS实例上的应用服务端口。
您可以指定后端服务器池内各ECS实例的转发权重。
权重越高的ECS实例将被分配到更多的访问请求。
如果您同时开启了会话保持功能,那么有可能会造成后端服务器的访问并不是完全相同的。如果出现了访问不均衡的情况,建议您暂时关闭会话保持功能,观察一下是否依然存在这种情况。
一个主备服务器组只包括两台ECS实例,一台作为主服务器,一台作为备服务器。由于备服务器不会做健康检查,所以只要主服务器健康检查失败,系统会直接将流量切到备机。当主服务器健康检查成功恢复服务后,流量会自动切到主服务器。
只有TCP和UDP监听支持添加主备服务器组。
在使用负载均衡服务前,必须至少添加一台默认服务器接收负载均衡转发的客户端请求。