基于 Akka 集群的微服务 API Gateway 模式实现
Posted
技术标签:
【中文标题】基于 Akka 集群的微服务 API Gateway 模式实现【英文标题】:API Gateway pattern implementation for microservices based on Akka cluster 【发布时间】:2017-09-05 07:10:18 【问题描述】:我尝试基于 Akka 创建一些使用 CQRS 的微服务。所以我的微服务使用 Http 端点写入(向集群发送命令)和读取端(从数据库读取投影),但这不是主要问题。由于存在许多微服务,因此出现了为客户端收集复杂 API 的问题。我找到了答案:API 网关模式。但我有下一个问题:我该如何实现它?
我可以创建单独的项目,这将实现 API 网关模式(在简单的情况下,它是一个反向代理)。完整堆栈将是:
Load balancer
-> API Gateway project
-> Load balancer
-> Microcervice read part
-> Database
-> Microcervice write part
-> Akka cluster
优点:
API Gateway 独立项目,具有自己的抽象
缺点:
API Gateway 项目中的两个平衡器,而不是那么快的代理
在微服务部分实现的 API 网关(auth 等),负载均衡器将收集复杂 API 中的端点。完整堆栈将是:
Load balancer
-> Microcervice read part (with public API)
-> Database
-> Microcervice write part (with public API)
-> Akka cluster
优点:
-
直接访问集群和数据库
快速响应
缺点:
复杂的微服务部分,混合层
哪个变体更可取或另一个最好?
【问题讨论】:
【参考方案1】:查看 Kong 项目,在他们的 github page 上有一个很好的图表,显示了您想如何考虑 API 网关。您也可以考虑将它们用于您的实施。
【讨论】:
以上是关于基于 Akka 集群的微服务 API Gateway 模式实现的主要内容,如果未能解决你的问题,请参考以下文章