
# 弹性负载均衡功能对比
 #### 协议对比
表1负载均衡器支持的协议对比 
| 协议类型             | 描述                                                                                                                                                                                                    | 独享型负载均衡 | 共享型负载均衡 |
|:---|:---|:---|:---|
| 四层（TCP/UDP）协议    | 网络型负载均衡支持TCP和UDP协议，监听器收到访问请求后，将请求直接转发给后端服务器。 转发效率高，数据传输快。                                                                                                              | √       | √       |
| 七层（HTTP/HTTPS）协议 | 应用型负载均衡支持HTTP和HTTPS协议，监听器收到访问请求后，需要识别并通过HTTP/HTTPS协议报文头中的相关字段，进行数据的转发。 支持加密传输、基于Cookie的会话保持等高级功能。                                                                     | √       | √       |
| 全链路HTTPS协议       | 监听器的前端协议选择"HTTPS"，后端服务器组的后端协议也支持选择"HTTPS"。                                                                                                                                                            | √       | ╳       |
| TLS协议            | 网络型负载均衡：支持TLS协议，适用于需要超高性能和大规模TLS卸载的场景。                                                                                                                                                                | √       | ╳       |
| QUIC协议           | 前端协议为QUIC和UDP的监听器，支持QUIC（Quick UDP Internet Connection）作为后端协议。配合连接ID算法，将同一个连接ID的请求转发到后端服务器。 使用QUIC协议的监听器具有低延迟、高可靠和无队头阻塞的优点，非常适合移动互联网应用、支持在WIFI和运营商网络中无缝切换，而不用重新建立连接。 | √       | ╳       |
| HTTP/2协议         | HTTP/2，即超文本传输协议 HTTP 2.0，向下兼容HTTP 1.X协议版本，同时性能和安全性都得到了提升。 此功能目前仅支持协议类型为HTTPS的监听器。                                                         | √       | √       |
| GRPC协议           | GRPC是一种高性能、通用的RPC开源软件框架，支持弹性负载均衡实现全链路HTTP/2通信。 仅支持前端协议为HTTPS的监听器，开启HTTP/2功能后，选择GRPC协议作为后端协议。                                                                            | √       | ╳       |
| WebSocket协议      | WebSocket (WS)是HTML5一种新的协议，实现了浏览器与服务器全双工通信，能更好地节省服务器资源和带宽并达到实时通讯。                                                                                                                                     | √       | √       |
   
#### 网络设置对比
表2负载均衡器支持的网络设置对比 
| 网络设置       | 描述                                                         | 独享型负载均衡 | 共享型负载均衡 |
|:---|:---|:---|:---|
| IPv4公网     | 支持通过公网IPv4地址对外提供服务，将来自公网的客户端请求按照指定的负载均衡策略分发到后端服务器进行处理。     | √       | √       |
| IPv4私网     | 支持通过私网IPv4地址对外提供服务，将来自同一个VPC的客户端请求按照指定的负载均衡策略分发到后端服务器进行处理。 | √       | √       |
| IPv6网络     | 支持负载均衡转发来自IPv6客户端的请求。                                      | √       | ╳       |
| 修改IPv4私有地址 | 可以将负载均衡当前使用IPv4私有IP修改为当前子网或者其它子网的目标IP地址。                   | √       | ╳       |
| 绑定/解绑EIP   | 根据业务需要为负载均衡实例绑定EIP地址，或者将负载均衡实例已经绑定的IP地址进行解绑。               | √       | √       |
| 修改公网带宽     | 当通过公网带宽提供负载均衡器和公网之间的访问流量时，可以按照实际需求更改ELB实例关联弹性公网IP的公网带宽。    | √       | √       |
   
 #### 监听器的关键功能对比
表3监听器的关键功能对比 
| 监听器功能               | 描述                                                                                                                                                                                                                                                                                                    | 独享型负载均衡 | 共享型负载均衡 |
|:---|:---|:---|:---|
| 全端口监听               | 全端口监听器对负载均衡IP地址上的所有端口（1-65535）进行监听，并将监听端口上接收到的请求转发到后端服务器的后端端口。 仅前端协议为TCP和UDP协议的监听器支持全端口监听。                                                                                                                                                                               | √       | ╳       |
| 访问控制                | 通过添加白名单和黑名单的方式控制访问负载均衡监听器的IP。 - 通过白名单能够设置允许特定IP访问，而其它IP不许访问。  - 通过黑名单能够设置允许特定的IP不能访问，而其它IP允许访问。   | √       | √       |
| HTTPS双向认证           | 负载均衡实例与访问用户互相提供身份认证，从而允许通过认证的客户访问负载均衡实例。 仅前端协议为HTTPS协议的监听器支持双向认证。                                                                                                                                                                                                       | √       | √       |
| SNI多域名证书            | SNI（Server Name Indication）是为解决一个服务器使用多个域名和证书的TLS扩展。开启SNI之后，用户需要添加域名对应的证书。 仅前端协议为HTTPS协议的监听器支持开启SNI。                                                                                                                                                                 | √       | √       |
| 获取客户端IP             | 后端服务器可以获取客户端真实IP地址。 独享型负载均衡默认开启，不支持关闭。                                                                                                                                                                                                                                 | √       | √       |
| HTTP/HTTPS监听器的高级配置                                                                                                                                                                                                                                                                                                                           ||||
| 默认安全策略              | 使用安全策略提高业务的安全性，安全策略包含TLS协议版本和配套的加密算法套件。 仅前端协议为HTTPS协议的监听器支持设置安全策略。                                                                                                                                                                                                      | √       | √       |
| 自定义安全策略             | 支持选择TLS协议版本和加密算法套件，创建用户自定义的安全策略。 仅前端协议为HTTPS协议的监听器支持设置安全策略。                                                                                                                                                                                                            | √       | ╳       |
| 获取弹性公网IP            | 通过X-Forwarded-ELB-IP头字段获取负载均衡实例的公网IP地址。                                                                                                                                                                                                                                                               | √       | √       |
| 获取负载均衡实例ID          | 通过X-Forwarded-ELB-ID头字段获取负载均衡实例的ID。                                                                                                                                                                                                                                                                   | √       | ╳       |
| 获取监听器端口号            | 通过X-Forwarded-Port头字段获取ELB实例监听器端口号。                                                                                                                                                                                                                                                                   | √       | ╳       |
| 获取客户端请求端口号          | 通过X-Forwarded-For-Port头字段获取客户端请求端口号。                                                                                                                                                                                                                                                                  | √       | ╳       |
| 重写X-Forwarded-Host  | ELB以客户端请求头的Host重写X-Forwarded-Host传递到后端服务器。                                                                                                                                                                                                                                                            | √       | √       |
| 重写X-Forwarded-Proto | ELB以监听器的前端协议重写X-Forwarded-Proto头字段传递到后端服务器。                                                                                                                                                                                                                                                           | √       | ╳       |
| 重写X-Real-IP         | ELB以客户端的源IP地址重写X-Real-IP传递到后端服务器。                                                                                                                                                                                                                                                                     | √       | ╳       |
   
 #### 转发能力对比
HTTP和HTTPS监听器支持设置转发策略，共享型负载均衡支持基础的转发策略，独享型负载均衡支持开启[高级转发策略](https://support.huaweicloud.com/usermanual-elb/elb_ug_jt_060301.html)。
转发策略支持分别设置转发规则和转发动作，详细对比见[表4]和[表5]。
 表4支持的转发规则对比 
| 转发规则     | 描述                                                                                          | 独享型负载均衡 | 共享型负载均衡 |
|:---|:---|:---|:---|
| 域名       | 触发转发的域名，仅支持精确域名。                                                                            | √       | √       |
| 路径       | 触发转发的路径。 路径的匹配规则有：精确匹配、前缀匹配、正则匹配。                           | √       | √       |
| HTTP请求方法 | 触发转发的HTTP请求方法。 主要有：GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS。 | √       | ╳       |
| HTTP请求头  | 触发转发的HTTP请求头。 请求头是键值对的形式，需要分别设置值。                          | √       | ╳       |
| 查询字符串    | 当请求中的字符串与设置好的转发策略中的字符串相匹配时，触发转发。                                                            | √       | ╳       |
| 网段       | 触发转发的请求网段。                                                                                  | √       | ╳       |
   
 表5支持的转发动作对比 
| 转发动作        | 描述                                                                                                                   | 独享型负载均衡 | 共享型负载均衡 |
|:---|:---|:---|:---|
| 转发至后端服务器组   | 如果满足转发规则，则将请求转发至配置好的后端服务器组。                                                                                          | √       | √       |
| 重定向至监听器     | 如果满足转发规则，则将请求转发至配置好的HTTPS监听器上。                                                                                       | √       | √       |
| 添加重定向至URL   | 如果满足转发规则，则将请求重定向至配置好的URL。 客户端访问ELB网址A后，ELB返回302或者其他3xx返回码和目的网址B，客户端自动跳转到网址B，网址B可自定义。 | √       | ╳       |
| 返回固定响应      | 如果满足转发规则，则返回固定响应。 用户访问ELB实例后，ELB直接返回响应，不向后端服务器继续转发，返回响应的状态码和内容可以自定义。                   | √       | ╳       |
| 转发动作（可选）                                                                                                                                            ||||
| 重写          | 如果满足转发规则的条件，则将请求重写为配置好的URL后再访问后端服务器组。                                                                                | √       | ╳       |
| 写入Header    | 如果满足转发规则的条件，则将在请求中写入配置的Header后再访问后端服务器组。 输入头字段名称和头字段内容，将覆盖请求中的头变量。                    | √       | ╳       |
| 删除Header    | 如果满足转发规则的条件，则将在请求中删除配置的Header后再访问后端服务器组。 输入Header头字段名称，将删除请求Header中对应的键值对内容。        | √       | ╳       |
| 限速          | 转发动作转发至后端服务器组和返回固定响应支持设置限速。 请求速率超过设置的限速后，新建连接请求将被丢弃，并会返回给客户端503状态码。                    | √       | ╳       |
| 跨域          | 支持添加跨域资源共享CORS（Cross-Origin Resource Sharing）标头以允许浏览器跨域访问 Web应用程序。                                                   | √       | ╳       |
| 流量镜像至后端服务器组 | 将转发至后端服务器组的流量请求镜像到选择的后端服务器组，适用于网络流量检查、审计分析以及问题定位等场景。 添加的其他可选转发动作也会对镜像到后端服务器组中的流量请求生效。 | √       | ╳       |
   
 #### 后端服务器组关键功能对比
表6后端服务器组的关键功能对比 
| 后端服务器组功能   | 描述                                                                                                                  | 独享型负载均衡 | 共享型负载均衡 |
|:---|:---|:---|:---|
| 后端服务器组重复使用 | 同一企业项目下，一个后端服务器组可关联至多个负载均衡实例和监听器使用。                                                                                 | √       | ╳       |
| 健康检查       | 负载均衡器会定期向后端服务器发送请求以测试其运行状态，这些测试称为健康检查。通过健康检查来判断后端服务器是否可用。                                                           | √       | √       |
| 会话保持       | 会话保持功能可以识别客户与服务器之间交互过程的关联性，在做负载均衡的同时，还保证一系列相关联的访问请求会保持分配到同一台服务器上。                                                   | √       | √       |
| 慢启动        | 负载均衡器在慢启动时间内向组内新增的后端服务器线性增加请求分配权重。 慢启动能够实现业务的平滑启动，避免业务抖动问题。                            | √       | ╳       |
| 主备转发       | 当主机健康检查结果正常时，负载均衡将流量转发至主机；当主机健康检查结果异常时，流量将被切换至备机。 必须向后端服务器组中添加两个后端服务器，一个为主服务器，一个为备服务器。 | √       | ╳       |
| 全端口转发      | 后端服务器组添加后端服务器时无需指定后端端口，监听器将按照前端请求端口转发流量至后端服务器对应的端口。 仅TCP、UDP和QUIC类型的后端服务器组支持全端口转发功能。     | √       | ╳       |
| 延迟注销       | 负载均衡器停止向移除的后端云服务器或者健康检查失败的后端云服务器发送新的请求，保持现有连接在延迟注销时间内正常传输。                                                          | √       | ╳       |
   
 #### 后端服务器组的流量分配策略对比
表7后端服务器组的流量分配策略对比 
| 分配策略类型 | 描述                                                  | 独享型负载均衡 | 共享型负载均衡 |
|:---|:---|:---|:---|
| 加权轮询算法 | 当后端服务器的权重相同情况下，将按照简单的轮询策略分发请求。                      | √       | √       |
| 加权最少连接 | 将请求分发给（当前连接/权重）比值最小的后端服务器进行处理。                      | √       | √       |
| 源IP算法  | 后端服务器的权重属性不再生效，在一段时间内，同一个客户端的IP地址的请求会被分发至同一个后端服务器上。 | √       | √       |
| 连接ID算法 | 利用报文里的连接ID字段进行一致性hash算法，按照运算结果将请求分发到后端服务器上。         | √       | ╳       |
   
 #### 后端服务器类型对比
表8支持的后端服务器类型对比 
| 后端类型           | 描述                                                                                                     | 独享型负载均衡 | 共享型负载均衡 |
|:---|:---|:---|:---|
| IP类型后端         | 后端服务器组不仅支持添加云上VPC内的服务器，还支持添加其他VPC、其他Region、云下数据中心的服务器的IP地址，帮助用户根据业务诉求灵活配置后端服务器。                        | √       | ╳       |
| 辅助弹性网卡（SubENI） | 后端服务器支持绑定辅助弹性网卡。                                                                                       | √       | ╳       |
| 弹性云服务器（ECS）    | 后端服务器支持弹性云服务器云主机。                                                                                      | √       | √       |
| 裸金属服务器（BMS）    | 后端服务器支持裸金属服务器物理机。                                                                                      | √       | √       |
| CCE 集群         | 支持通过弹性负载均衡访问CCE集群，详情请参见[《云容器引擎用户指南》](https://support.huaweicloud.com/usermanual-cce/cce_10_0681.html)。 | √       | √       |
   
