我想问一下Consul和API Gateway的功能。 Consul可以将API网关替换为服务引用者吗?
或者如何在微服务架构方面使用它们?
谢谢
答案 0 :(得分:1)
Consul是多数据中心服务发现(+健康检查)和分布式K / V商店。
API Gateway是一项服务,负责处理接受和处理API调用所涉及的所有任务,包括流量管理,授权和访问控制,监控和API版本管理。
所以他们完全不同......
取决于您要实现的目标以及当前的API网关用例,您可以使用Consul + Consul感知负载均衡器,例如https://github.com/fabiolb/fabio和https://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定义。
并基于该身份验证令牌,将能够确定是否允许用户访问,什么速率限制/配额以及允许他们访问的上游目标和路径。一些典型功能:
因此,网关随后会将请求代理到myservice
,然后将响应返回给客户端。
现在让我们假设您希望您的上游资源高度可用-例如您可能有myservice.com/mypath
和myservice1.com
。
可以将网关配置为在这些服务之间负载平衡请求。您可以使用网关的功能来测试上游的运行状况,但也可以使用专用工具来进行此操作。领事就是这样一种工具。
API网关应该能够与服务发现工具集成。因此,假设myservice2.com
停止维护,网关将永远不会向那里发送流量,而只会发送到myservice1.com
,直到service1恢复正常。
下面的屏幕快照是Consul的tyk.io api网关集成支持的示例。