什么是服务网关?

服务网关充当服务客户端和被调用服务之间的中介。

  • 服务客户端仅与服务网关管理的单个URL通信。

  • 服务网关解析来自服务客户端调用的路径,并确定服务客户端试图调用哪个服务。

有了服务网关,我们的服务客户端永远不会直接调用个别服务的URL,而是将所有调用都发送到服务网关。

由于服务网关位于从客户端到各个服务的所有调用之间,它还充当服务调用的中央PEP(策略执行点)。使用集中的PEP意味着可以在一个地方执行横切服务关注点,而无需各个开发团队实施这些关注点。

服务网关可以实现的横切关注点示例包括:

  1. 静态路由

    服务网关将所有服务调用放在单个URL和API路由之后。这简化了开发,因为我们只需了解所有服务的一个服务端点(网关的)。

  2. 动态路由

    服务网关可以检查传入的服务请求,并根据传入请求的数据为服务调用者执行智能路由。例如,参与Beta计划的客户可能将所有对服务的调用路由到运行与其他人使用的不同代码版本的服务群集。

  3. 身份验证和授权

    由于所有服务调用都经过服务网关,服务网关是检查服务调用者是否已进行身份验证的自然位置

  4. 指标收集和日志记录

    服务网关可用于在服务调用通过时收集指标和日志信息

    • 可以使用服务网关确认用户请求的关键信息是否齐全,从而确保日志记录是统一的。

    • 这并不意味着不应该从各个服务内部收集指标。相反,服务网关允许我们集中收集许多基本指标,例如服务被调用的次数和服务响应时间。

注意

Last updated