Consul vs API Gateway

时间:2017-12-13 05:42:42

标签: api consul api-gateway

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

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

谢谢

2 个答案:

答案 0 :(得分:1)

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

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

所以他们完全不同......

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

答案 1 :(得分:0)

从高层次看,API网关将成为您微服务的单入口。无论后端服务如何,它都可以为您的客户提供一致的用户体验。

它们充当一种抽象-当您到达<div class="base-container"> <div class="menu-container"> <div class="arrow_box"> <h1 class="logo">First Menu</h1> </div> <div class="arrow_box"> <h1 class="logo">Second Menu</h1> </div> <div class="arrow_box"> <h1 class="logo">Third Menu</h1> </div> </div> <div class="main-content"> </div> </div>端点时,您不需要了解内部微服务,例如/product/{productId}/reviews等-网关可以为您执行此操作并返回单个响应。

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

/recommendations

在内部,网关将接收请求,并会看到curl http://gateway.com/myservice/mypath -H 'Authorization: secret_auth_token'指向特定的api定义。

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

  • 身份验证和授权
  • 费率限制
  • 身体变换(过滤器/ Map Reduce / Json-> XML,XML-> Json)
  • 标题注入
  • Json模式验证
  • 方法转换
  • 模拟回复
  • API版本控制策略
  • 将请求发送到多个目标
  • 列表继续。

因此,网关随后会将请求代理到myservice,然后将响应返回给客户端。

现在让我们假设您希望您的上游资源高度可用-例如您可能有myservice.com/mypathmyservice1.com

可以将网关配置为在这些服务之间负载平衡请求。您可以使用网关的功能来测试上游的运行状况,但也可以使用专用工具来进行此操作。领事就是这样一种工具。

API网关应该能够与服务发现工具集成。因此,假设myservice2.com停止维护,网关将永远不会向那里发送流量,而只会发送到myservice1.com,直到service1恢复正常。

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

enter image description here