【问题标题】:How API gateway is correctly used in Microservice?API网关如何在微服务中正确使用?
【发布时间】:2017-10-22 03:11:11
【问题描述】:

假设有 2 个后端服务:

  1. 产品服务(获取产品信息),
  2. 库存服务(获取可用数量)。

除此之外,还有一个前端 Web 应用程序可以显示产品详细信息。

我在互联网上看到的所有示例都是关于前端和 API 网关是同一个应用程序并使用 Zuul 作为反向代理。

我的理解是 API 网关应该是一个单独的应用程序(层),前端应用程序应该使用它来调用后端服务。

那么Zuul有什么好处呢?为什么不直接使用 feign 为这两种服务创建客户端并为前端应用程序提供端点?

【问题讨论】:

    标签: microservices spring-cloud netflix-zuul netflix-feign api-gateway


    【解决方案1】:

    Feign 客户端和 Zuul 是 Spring Cloud Netflix 中两个完全不同的组件。

    Feign Client 是一个美化的 REST 模板,添加了 Retry、Fallbacks 等功能。您可以按照 Apache HttpClient 的思路进行思考

    另一方面,Zuul 是代理/反向 - 代理/网关。通常,网关应该是后端服务的公共入口点。它应该是一个单独的层,允许您添加常见的功能,如身份验证、审计、日志记录等。正如@ootero 所提到的,您可以轻松地在 Zuul 中添加过滤器来实现此功能。

    【讨论】:

    • 非常感谢 Vasanth
    • 不客气,哈立德先生。如果您发现任何答案有帮助,请投票。它可以帮助贡献者获得可提供额外特权的积分。
    【解决方案2】:

    Zuul 作为Proxy 服务器不仅路由请求,而且Zuul 过滤器也可用于处理横切关注点,例如:

    • 地理位置
    • 令牌解密
    • 身份验证
    • 请求/响应操作
    • 交通整形

    您提到Feign 客户端,并且(据我所知)基于Java 的前端应用程序可以工作,如果前端应用程序是使用AngularReact 开发的呢?

    【讨论】:

    • 完美,非常感谢 Ootero 这消除了我的疑虑。
    猜你喜欢
    • 2019-04-06
    • 2020-07-23
    • 2020-07-24
    • 1970-01-01
    • 2022-01-26
    • 2017-04-18
    • 2017-04-05
    • 2018-01-25
    • 2019-10-27
    相关资源
    最近更新 更多