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

服务

服务(Service)代表一个后端应用程序或外部微服务。它本质上是将该应用程序或微服务提供的所有 API 组合在一起。

服务直接归属于某个网关组。在服务中创建或更新路由、四层路由、上游和插件后,配置会同步到该网关组下的数据面实例,并影响通过该服务转发的流量。

以下是关键关系的拆解:

  • 路由(Routes)和四层路由(Stream Routes):大多数服务与路由或四层路由存在一对多的关系(一个服务只能拥有其中一种类型:路由或四层路由)。这意味着单个服务可以关联多个路由或四层路由,从而定义了如何将传入的 API 请求定向到服务内的相应功能模块。

  • 上游(Upstreams):通常情况下,服务与上游保持一对一的关系。上游充当一个容器,指定了处理该服务请求的后端服务器地址。然而,对于灰度发布、蓝绿部署或管理多个集群等高级场景,一个服务可能会使用多个上游。在这种情况下,默认上游作为大多数请求的主要目标,而其他上游则可用于特定目的,例如将流量路由到灰度发布或备用集群。

信息

对于熟悉 Apache APISIX 的用户,需要注意的是,API7 企业版与 Apache APISIX 中的“服务”(Service)对象有所不同。

服务的工作原理

下图展示了一个服务,该服务构建了一个 Petstore 架构。该服务有两个配置各异的路由。你可以使用 HTTP GET 方法来获取相关数据。

Service

此示例将流量仅定向到一个上游节点。你可以根据需要添加更多的上游节点,以保持平稳的运行和响应,同时防止单点故障。

服务配置

以下配置被归类为服务运行时配置:

  • 上游
  • 服务主机
  • 路径前缀
  • 跳过路径前缀
  • 插件
  • 路由超时

服务配置在每个网关组内独立管理。你可以在测试、UAT 和生产等不同网关组中创建同名服务,并分别调整域名、路径、上游节点、插件和超时等配置,以适配不同环境。

备注

例如,对于不同网关组上的同一个服务:

  • test(测试)环境中的 API URL 是 https://api7-test.ai/v1/pet,而节点地址是 127.0.0.1:80
  • production(生产)环境中的 API URL 是 https://api7.ai/petstore/pet,而节点地址是 192.168.0.1:80

更多资源