名词解释
集群
集群 ID
集群的唯一标识,不可修改。
集群状态
正常:集群可正常连接对应的 etcd 资源。
异常:集群无法连接对应的 etcd 资源,导致网关数据面无法运行。
工作分区
主机名
对工作分区内所有路由/API 的格式要求。不符合主机名格式的路由/API 无法添加。
举例:工作分区中主机名设置为*.wk
,则该工作分区内所有路由/API 的主机名,可以是a.wk
,a.b.wk
等,但不可以是a.wk.com
。
etcd 资源
节点地址
etcd 集群需要至少一个节点,如需考虑 etcd 高可用,则需要至少三个节点。同一个 etcd 集群下所有节点中储存的配置数据是一致且实时同步的。节点地址包括节点的 ip 地址和端口。
状态
运行中:该 etcd 集群可以正常连接。
已停止:该 etcd 集群无法连接(没有足够的健康节点)。
身份认证
API7 网关需要对 etcd 的完全访问权限才可正常运行。更多背景知识请参考etcd 身份认证文档.
如果在 etcd 集群中开启了身份认证,则需要在 API7 网关侧录入可供使用的 root 用户名称及密码。
双向认证
考虑 etcd 安全性,可以为每个 etcd 用户添加证书开启双向认证。更多背景知识请参考etcd 安全模式文档.
如果在 etcd 集群中启用了证书,则需要在 API7 网关侧录入证书、秘钥、证书颁发机构信息。
上游
上游类型
上游使用的负载均衡算法的类型。
负载均衡算法
目前支持以下算法:
- roundrobin - 带权轮询。
- chash - 带权一致性哈希。
- ewma - 指数加权移动平均法,选择延迟最小的节点。参考 EWMA chart。
- least_conn - 最小连接数。选择 (active_conn + 1) / weight 最小的节点。此处的 active connection 概念跟 NGINX 的相同,它是当前正在被请求使用的连接。
目标节点
上游的服务节点,网关转发流量的实际去处。必须是固定不变的静态节点,可以是 ip 地址或者域名。
如果所有目标节点都为空,则转发到此上游的路由/ API 会返回502
状态码。
权重
用于负载均衡算法的节点权重,影响节点的选择。
Host 请求头
请求转发到上游时,可以选择直接透传,与客户端保持一致的主机名,或使用目标节点列表中的主机名或 IP 替换原有请求中的 Host.
重试次数
当请求转发到上游时,先按照所选负载均衡算法,为所有的目标节点排序。优先将请求转发到排序第一的目标节点,如果失败,将请求转发到下一个顺位的目标节点,以此类推。
- 如果重试次数留空不填,将默认启用重试机制且次数为{可用的目标节点数量-1},即一个请求将在所有目标节点尝试处理,所有目标节点均处理失败请求才算失败。
- 如果重试次数设置为 0,表示不启用重试机制,只要首个目标节点处理失败,即返回请求失败。
- 如果重试次数大于目标节点数量,在最后一个目标节点请求仍失败后,将回头重试排序第一的目标节点,并继续循环,直至重试次数耗尽。
- 如果重试次数小于目标节点数量,重试次数耗尽时,即使仍有排序靠后的目标节点未尝试过,仍然返回请求失败。
协议
跟上游通信时使用的 scheme。对于 7 层代理,可选值为 [http, https, grpc, grpcs]。默认值为 http。
连接超时
建立从请求到上游服务器的连接的超时时间。
发送超时
发送数据到上游服务器的超时时间。
接收超时
从上游服务器接收数据的超时时间。
健康检查-主动检查
主动健康检查主要是指通过预设的探针类型,主动探测上游节点的存活性,无论上游是否收到了请求。目前支持 HTTP、HTTPS、TCP 三种探针类型。
当发向健康节点 A 的 N 个连续探针都失败时(取决于如何配置),则该节点将被标记为不健康,不健康的节点将会被负载均衡器忽略,无法收到请求;若某个不健康的节点,连续 M 个探针都成功,则该节点将被重新标记为健康,进而可以被代理。
健康检查-主动检查-类型
执行主动健康检查的探针类型,目前支持 HTTP、HTTPS、TCP 三种。