七层协议支持 gRPC

最近更新时间:2024-08-19 10:08:51

我的收藏
gRPC 是 Google 发布的基于 HTTP 2.0 传输层协议的高性能开源软件框架,提供了支持多种编程语言、对网络设备进行配置和纳管的方法。本文指导您通过配置 HTTPS 监听器的 gRPC 协议的健康检查,将客户端的 gRPC 请求通过 CLB 实例转发到后端协议为 gRPC 的后端服务。

使用场景

当客户端通过 HTTPS 请求访问协议类型为 gRPC 的后端服务时,您可以通过 CLB 实例的 HTTPS 监听器支持 gRPC 协议来实现。



前提条件

您已创建 VPC,详情请参见 创建私有网络
您已在 VPC 中创建了 CVM 实例,并在实例上部署了 gRPC 服务,详情请参见 通过镜像创建实例
您已购买了 CLB 实例,详情请参见 创建负载均衡实例

使用限制

仅负载均衡类型支持,传统型负载均衡不支持。
IPv6 版本 CLB 与开启了七层混绑的 IPv6 版本 CLB 不支持。
仅 VPC 网络支持,基础网络不支持。
后端服务不支持 SCF(需要 SCF target 内部支持 gRPC 协议)。

操作步骤

步骤一:配置监听器

1. 登录 负载均衡控制台,在左侧导航栏单击实例管理
2. 在 CLB 实例列表页面左上角选择地域,在实例列表右侧的操作列中单击配置监听器
3. 在 HTTP/HTTPS 监听器下,单击新建,在弹出的创建监听器对话框中配置 HTTPS 监听器。
3.1 创建监听器
监听器基本配置
说明
示例
名称
监听器的名称。
test-https-443
监听协议端口
监听协议:本示例选择 HTTPS。
监听端口:用来接收请求并向后端服务器转发请求的端口,端口范围为1 - 65535。
同一个负载均衡实例内,监听端口不可重复。
HTTPS:443
启用长连接
开启后,CLB 与后端服务之间使用长连接,CLB 不再透传源 IP,请从 XFF 中获取源 IP。为保证正常转发,请在 CLB 上打开安全组默认放通或者在 CVM 的安全组上放通100.127.0.0/16。
说明:
开启后,CLB 与后端服务的连接数范围在请求[QPS,QPS*60]区间波动,具体数值取决于连接复用率。若后端服务对连接数上限有限制,则建议谨慎开启。此功能目前处于内测中,如需使用,请提交 内测申请
健康检查中的健康探测源 IP 100.64.0.0/10 网段已默认放通,此网段下的 IP 无需再次放通。

不启用
启用 SNI
启用 SNI 表示一个监听器下可为不同的域名配置不同的证书,不启用 SNI 表示该监听器下多个域名使用同一个证书。
不启用
SSL 解析方式
支持单向认证和双向认证。负载均衡器代理了 SSL 加解密的开销,保证访问安全。
单向认证
服务器证书
可以选择 SSL 证书平台 中已有的证书,或新建证书。
选择已有
3.2 创建转发规则
转发规则基本配置
说明
示例
域名
转发域名:
长度限制:1 - 80个字符。
不能以 `_` 开头。
支持精准域名和通配域名。
支持正则表达式。
具体配置规则,详情请参见 转发域名配置规则
www.example.com
默认域名
当监听器中所有域名均没有匹配成功时,系统会将请求指向默认访问域名,让默认访问可控。
一个监听器下仅能配置一个默认域名。
开启
HTTP 2.0
启用 HTTP2.0 后,CLB 可以接收 HTTP 2.0 的请求,无论客户端请求 CLB 时使用哪种 HTTP 版本,CLB 访问后端服务器的 HTTP 版本都是 HTTP 1.1。
开启
QUIC
启用 QUIC 后,客户端可以和 CLB 之间建立 QUIC 连接,当二者协商无法建立 QUIC 连接时自动降级到 HTTPS 或 HTTP/2,但 CLB 和后端服务器之间仍然使用 HTTP1.x 协议。详情请参见 CLB 支持 QUIC 协议
开启
URL 路径
转发 URL 路径:
长度限制:1 - 200个字符。
支持正则表达式。
具体配置规则,详情请参见 转发 URL 路径配置规则
/index
均衡方式
HTTPS 监听器中,负载均衡支持加权轮询(WRR)、加权最小连接数(WLC)和 IP Hash 三种调度算法:
加权轮询算法:根据后端服务器的权重,按依次将请求分发给不同的服务器。加权轮询算法根据新建连接数来调度,权值越高的服务器被轮询到的次数(概率)越高,相同权值的服务器处理相同数目的连接数。
加权最小连接数:根据服务器当前活跃的连接数来估计服务器的负载情况,加权最小连接数根据服务器负载和权重来综合调度,当权重值相同时,当前连接数越小的后端服务器被轮询到的次数(概率)也越高。
IP Hash:根据请求的源 IP 地址,使用散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器为可用且未超载状态,则请求发送到该服务器,反之则返回空。
加权轮询
后端协议
后端协议是指 CLB 与后端服务之间的协议:
后端协议选择 HTTP 时,后端服务需部署 HTTP 服务。
后端协议选中 HTTPS 时,后端服务需部署 HTTPS 服务,HTTPS 服务的加解密会让后端服务消耗更多资源。
后端协议选中 gRPC 时,后端服务需部署 gRPC 服务。仅 HTTP2.0 开启且 QUIC 关闭的情况下,后端转发协议支持选择 gRPC。
gRPC
获取客户端 IP
默认启用。
已开启
Gzip 压缩
默认启用。
已开启
3.4 会话保持
会话保持配置
说明
示例
会话保持开关
开启会话保持后,负载均衡监听会把来自同一客户端的访问请求分发到同一台后端服务器上。
TCP 协议是基于客户端 IP 地址的会话保持,即来自同一 IP 地址的访问请求转发到同一台后端服务器上。
加权轮询调度支持会话保持,加权最小连接数调度不支持开启会话保持功能。
开启
会话保持时间
当超过保持时间,连接内无新的请求,将会自动断开会话保持。
可配置范围30s - 86400s。
30s

步骤二:绑定后端云服务器

1. 监听器管理页面,单击刚才创建的监听器,如上述 HTTPS:443 监听器,单击左侧的 + 展开域名和 URL 路径,选中具体的 URL 路径,即可在监听器右侧查看该路径上已绑定的后端服务。
2. 单击绑定,在弹出框中选择需绑定的后端服务器,并配置服务端口和权重。
说明:
默认端口功能:先填写“默认端口”,再选择云服务器后,每台云服务器的端口均为默认端口。

步骤三:安全组(可选)

您可以配置负载均衡的安全组来进行公网流量的隔离,详情请参见 配置负载均衡安全组

步骤四:修改/删除监听器(可选)

如果您需要修改或删除已创建的监听器,请在监听器管理页面,单击已创建完毕的监听器,单击

图标修改或

图标删除。