上游
上游(Upstream)就像一个容器,将一个或多个后端服务器地址组合在一起。它是服务(Service)中的一个关键元素,指定了 API 请求应该被路由到哪里以及如何进行分发。大多数情况下,单个上游可以与服务内的多个路由(Routes)相关联。
上游的工作原理
想象一个繁忙的机场。乘客(API 请求)到达后需要被引导到他们的登机口(后端服务)。API7 网关中的上游就像这些登机口。它们不是物理位置,而是定义了传入请求应该被发送到哪里的逻辑分组。一个上游可以代表单个后端服务、一组用于负载均衡的相同服务实例池,或者指向具有动态变化后端的服务注册中心。
从本质上讲,上游在你的路由及其目标后端服务之间提供了一层抽象。这种抽象简化了配置管理,并启用了负载均衡和容错等功能。

使用场景
单个后端服务
上游可以代表单个后端服务,这非常适合你拥有定义明确且静态后端的场景。
例如,可以创建一个指向负责用户数据管理(登录、注册、个人资料更新)的单一后端服务的“user-service”上游。这种直接的方法简化了与用户相关的 API 端点的配置。
负载均衡池
上游可以配置为相同后端服务的实例池。然后,API7 网关可以在这些服务器之间分发传入的请求,以提高性能和可扩展性。
例如,可以配置一个“product-service”的上游。然而,这个上游将指向复制了你的产品服务的后端服务实例池。这实现了负载均衡,将在多个服务实例之间分发传入的产品信息请求(检索产品详细信息、搜索产品)。这确保了随着用户群的增长和产品信息请求的激增,系统能够保持最佳性能。
动态服务发现
上游可以利用服务注册中心。这使它们能够动态地发现并连接到在注册中心(如 Nacos、Kubernetes 等)注册的后端服务。这对于后端经常变化或能够自动扩缩容的微服务来说非常理想。