跳到主要内容
版本:3.9.x

确保上游高可用性

当 API7 网关将 API 请求发送到上游(Upstream)时,如果这些上游系统发生故障,就会出现可用性和可靠性问题。本指南介绍了实现上游依赖高可用性的几种策略。

前提条件

  1. 安装 API7 企业版
  2. 在网关组中有一个正在运行的 API

添加多个上游节点

使用多个上游节点可以防止单节点故障。在某个网关组中对上游节点所做的修改不会影响已发布到其他网关组的同一服务版本。

  1. 从侧边导航栏选择你的网关组下的 已发布服务(Published Services),然后点击你要修改的服务,例如版本为 1.0.0httpbin
  2. 在该已发布服务下,从侧边导航栏选择 上游(Upstreams)
  3. 点击 节点(Nodes) > 添加节点(Add Node)
  4. 在对话框中,执行以下操作:
  • 主机(Host)端口(Port) 字段中,输入另一个 API 端点。
  • 权重(Weight) 字段中,输入与第一个节点相同的 100
  • 点击 添加(Add)

修改负载均衡类型

负载均衡负责将网络请求分配到多个节点上。对于处理高流量的系统来说,这至关重要,它可以提高性能、可扩展性和可靠性。

API7 网关支持多种负载均衡算法:

  • 带权重的轮询(Weighted Round Robin,WRR)
  • 一致性哈希(Consistent Hash)
  • 指数加权移动平均(Exponentially Weighted Moving Average,EWMA)
  • 最小连接数(Least Connection)

默认情况下,API7 网关使用 WRR 算法。该算法根据节点的权重以循环的方式将传入请求分配给一组节点。

  1. 从侧边导航栏选择你的网关组下的 已发布服务(Published Services),然后点击你要修改的服务,例如版本为 1.0.0httpbin
  2. 在该已发布服务下,从侧边导航栏选择 上游(Upstreams)
  3. 上游配置(Upstream Configuration) 字段中,点击 编辑(Edit)
  4. 在对话框中,将 负载均衡类型(Load Balancing Type) 修改为 最少连接数(Least Connection)
  5. 点击 保存(Save)

启用健康检查

健康检查是一种机制,它根据上游节点的响应能力来判断节点是健康还是不健康的。配置了健康检查后,API7 企业版只会将请求转发给被认为是健康的上游节点,而不会将请求转发给被认为是不健康的节点。

健康检查一般分为两种方式:

  • 主动健康检查:通过主动探测节点来判断上游节点的健康状况。
  • 被动健康检查:根据节点对用户请求的响应情况来判断上游节点的健康状况,不会发起额外的探测。被动检查必须与主动检查结合使用,不能单独使用。

API7 企业版同时支持七层(L7,HTTPS 和 HTTP)和四层(L4,TCP)的健康检查。

默认情况下,上游的健康检查是在全局范围启用的:

config.yaml
apisix:
disable_upstream_healthcheck: false

按照以下步骤配置健康检查的详细信息。

信息

在继续之前,请确保你的 API 后端已经实现了用于健康检查的端点(Endpoint)。

  1. 从侧边导航栏选择你的网关组下的 已发布服务(Published Services),然后点击你要修改的服务,例如版本为 1.0.0httpbin
  2. 在该已发布服务下,从侧边导航栏选择 上游(Upstreams)
  3. 健康检查(Health Check) 字段中,点击 启用(Enable)
  4. 配置 主动健康检查(Active Health Check),并可选择配置 被动健康检查(Passive Health Check)

在使用被动健康检查时,API7 企业版要求必须配置主动健康检查。当上游服务变得不健康时,主动健康检查会定期探测该上游服务是否已经恢复。

查看配置上游健康检查以了解更多关于配置和行为的信息。

其他资源