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

网关组

网关组是由一个或多个 API 网关实例组成的逻辑单元。组内实例使用相同的配置和行为处理 API 请求,从而保证处理方式一致并简化集中管理。

只有单个集群或生产环境时,默认网关组通常即可满足需求。高级网关组适用于复杂场景,例如为不同子公司、业务线、集群,或 UAT 和预发布环境配置独立的 API 策略。API7 网关本身没有集群概念,可以通过网关组的名称和标签区分集群;环境同样如此,此外还可以为网关组设置生产 / 非生产属性,决定它消耗哪一份许可证核心数额度。

一个网关组可以包含一个或多个网关实例,但每个实例只能属于一个网关组。网关实例可以部署在相同或不同的虚拟机、裸金属服务器或 Kubernetes 节点上,以满足跨业务线、集群、工作区和环境的多样化需求。

例如,下图中的支付团队同时使用生产环境和 UAT 环境,报价团队只使用生产环境。可以为它们创建 Payment ProdPayment UATQuote Prod 三个网关组,并分别添加 Env:ProdEnv:UAT 标签。

支付团队和报价团队示例图:三个网关组分别为 Payment Prod、Payment UAT 和 Quote Prod,每个网关组都包含自己的网关实例,并标有 Env 或 Env

主要特性

  • API 网关组管理:将多个共享配置的 API 网关实例作为一个逻辑单元管理,简化运维并确保策略执行一致。

  • 按业务划分网关:将不同业务线和解决方案分配到专用 API 网关组,使 API 基础设施与组织的业务域保持一致。

  • 物理隔离:将多个 API 网关实例部署在不同数据中心、云平台或虚拟机中,防止网关组相互干扰,增强系统稳定性和安全性。

  • 弹性伸缩:根据流量变化动态增加或减少 API 网关实例,提高资源利用率并降低运维成本。

  • 灵活、可扩展的基础设施:将网关组的逻辑架构与单个网关实例的物理部署解耦,提高 API 基础设施的灵活性和可扩展性。

  • 细粒度的权限控制:网关组为不同的网关实例和 API 启用不同的权限配置,以满足合规要求。

环境与许可证核心数额度

每个网关组都属于生产非生产环境,该属性决定了组内数据面实例消耗许可证中的哪一份 CPU 核心数额度。因此,同一套控制面可以管理多个环境,而预发布和测试网关组不会占用生产核心数额度。

在控制台新增或编辑网关组时选择环境,也可以通过网关组 API 的 environment 字段设置。默认值为生产;3.10.5 之前创建的网关组同样按生产处理。两份额度如何统计、超限后会限制哪些操作,请参考核心数额度

API7 企业版从 3.10.5 版本开始支持。

用例

网关组适用于以下典型场景。

隔离开发、测试、UAT 和生产环境

API 部署和发布通常需要经历多个阶段和环境。假设公司有 Dev、Test、UAT 和 Prod 四个环境。如果不使用网关组,就需要部署四套具有独立控制面和数据面的 API7 网关。开发人员、QA 和运维工程师还需要通过不同域名访问各套控制面,以开发、测试和发布同一个 API。

如果有 5 条业务线且每条业务线都有 4 个环境,就需要部署 20 套 API7 网关,不仅浪费资源,也会增加管理成本。

使用网关组可以在同一控制面中创建 20 个逻辑隔离的网关组,按业务线和环境统一命名,并使用标签筛选。同时,还可以通过基于角色的访问控制(RBAC)实施细粒度权限控制,例如只允许开发人员修改开发环境配置。

将 Dev、Test 和 UAT 网关组标记为非生产,它们的 CPU 核心数就会计入非生产额度,生产额度仅由 Prod 网关组使用。详见环境与许可证核心数额度

管理跨不同区域的多个集群

对于服务全球客户的企业,跨区域、跨集群管理 API 服务并满足数据合规要求是一项挑战。假设公司在北美、欧洲和亚太地区运营,每个区域有 4 个生产集群。如果不使用网关组,就需要维护 12 套控制面和数据面,容易产生配置差异;即使大部分网关配置相同,也需要额外确保日志记录器、密钥管理器和可观测性工具的加密、隐私及合规设置一致。

网关组支持通过单个控制面集中管理和配置多个区域的 API 网关集群。结合环境变量、服务发现和注册中心等机制,可以统一运维并降低整体维护成本。

API7 网关还支持多层网络架构,实现跨区域的数据处理和合规路由。例如,一位美国用户从欧洲发起请求时,欧洲集群可以根据用户 ID 识别该请求并将其重定向到北美集群,从而兼顾合规要求和处理效率。

满足不同项目的服务水平目标

不同项目中服务的服务水平目标(SLO)各不相同。例如,支付服务的 SLO 可以是 99.999%,而历史订单服务的 SLO 可能是 99%。每个服务都可以采用特定策略,以满足各自的 SLO。

基础设施和运营团队可以在多个区域部署支付服务,然后为这个网关组分配更多的网关实例和更高规格的计算资源,并为其设置严格的告警策略和详细的可观测性指标。相反,SLO 要求较低的历史订单服务可以采用轻量级部署策略,放宽告警和监控,以减少资源分配。