上游
上游就像一个容器,将一个或多个后端服务器地址分组在一起。它是服务中的关键要素,指定了 API 请求的路由方式和分发方式。大多数情况下,一个上游可以链接一个服务内的多个路由。
上游工作原理
想象一个繁忙的机场。旅客(API 请求)抵达,需要被引导到他们的登机口(后端服务)。API7 网关中的上游就像这些登机口。它们不是物理位置,而是定义了传入请求应该发送到哪里的逻辑分组。一个上游可以代表一个后端服务,也可以代表一个用于负 载均衡的相同服务池,或者指向具有动态变化后端的注册中心。
本质上,上游在路由和它们所指向的实际后端服务之间提供了一层抽象。这种抽象简化了配置管理,并启用了负载均衡和容错等功能。
应用场景
单体后端服务
一个上游可以代表一个单体的后端服务,这对于后端定义明确且静态的场景非常理想。
例如,可以创建一个名为 user-service
的上游,指向负责用户数据管理(登录、注册、个人资料更新)的后端服务。这种直接的方式简化了用户相关 API 端点的配置。
负载均衡池
上游可以配置为相同后端的多个服务实例的池。然后,API7 网关可以在这些服务实例之间分配传入的请求,以提高性能和可扩展性。
例如,可以配置一个名为product-service
的上游。但是,此上游将指向扩容的后端服务实例池。这样可以实现负载均衡,将传入的产品信息请求(检索产品详细信息、搜索产品)分配到多个服务实例。随着用户群的增长和产品信息请求的激增,这确保了最佳性能。