【问题标题】:Consul vs API Gateway领事与 API 网关
【发布时间】:2018-05-26 22:40:10
【问题描述】:

我想问一下 Consul 和 API Gateway 的功能。 Consul 可以代替 API Gateway 作为服务的引用者吗?

或者在微服务架构方面如何使用它们?

谢谢

【问题讨论】:

    标签: api consul api-gateway


    【解决方案1】:

    Consul 是多数据中心服务发现(+健康检查)和分布式 K/V 存储。

    API Gateway 是一项服务,负责处理接受和处理 API 调用所涉及的所有任务,包括流量管理、授权和访问控制、监控以及 API 版本管理。

    所以他们完全不同..

    取决于您要实现的目标以及您当前的 API 网关用例,您可能能够使用 Consul + Consul 感知负载平衡器,例如 https://github.com/fabiolb/fabiohttps://traefik.io/

    【讨论】:

    • consul 也是一个服务网格
    【解决方案2】:

    在高层次上,API 网关将成为您的微服务的单一入口点。它将允许您为您的客户提供一致的用户体验 - 无论后端服务如何。

    它们充当抽象 - 当您点击 /product/{productId} 端点时,您不需要了解内部微服务,例如/reviews/recommendations 等 - 网关可以为您执行此操作并返回单个响应。

    API 网关将被配置为在侦听路径上接收请求,例如

    curl http://gateway.com/myservice/mypath -H 'Authorization: secret_auth_token'

    在内部,网关将收到请求,并会看到myservice 指向特定的 api 定义。

    并且基于该身份验证令牌,将能够确定是否允许用户访问、什么速率限制/配额以及允许他们访问的上游目标和路径。几个典型特征:

    • 身份验证和授权
    • 速率限制
    • 正文变换(过滤器/映射缩减/Json -> XML、XML -> Json)
    • 标头注入
    • Json 架构验证
    • 方法转换
    • 模拟回复
    • API 版本控制策略
    • 向多个目标发送请求
    • 不胜枚举。

    因此网关会将请求代理到例如myservice.com/mypath,并将响应返回给客户端。

    现在让我们假设您希望上游具有高可用性 - 例如你可能有myservice1.commyservice2.com

    网关可以配置为在这些服务之间对请求进行负载平衡。您可以使用网关的功能来测试上游的健康状况,但也有专门的工具。 Consul 就是这样一种工具。

    API 网关应该能够与服务发现工具集成。所以让我们假设myservice1.com 因维护而停机,网关将知道永远不会在那里发送流量,并且只会发送到service2.com,直到 service1 恢复。

    下面的屏幕截图是对 Consul 的 tyk.io api 网关集成支持的示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-22
      • 2017-04-08
      • 1970-01-01
      • 1970-01-01
      • 2019-01-23
      • 1970-01-01
      • 2014-10-15
      • 2018-03-11
      相关资源
      最近更新 更多