0
我尝试创建一些基于Akka的使用CQRS的微服务。所以我的微服务使用Http端点写(发送命令到群集)和读端(从数据库读取投影),但这不是主要问题。由于有许多微服务,因此出现了为客户收集复杂API的问题。我找到了答案:API网关模式。但我有下一个问题:我该如何实现它?基于Akka集群的微服务的API网关模式实现
我可以创建单独的项目,它将实现API网关模式(在简单情况下它是一个反向代理)。完整的堆栈将是:
Load balancer -> API Gateway project -> Load balancer -> Microcervice read part -> Database -> Microcervice write part -> Akka cluster
优点:
API网关与自己的抽象
缺点单独的项目:
两个均衡,并没有那么快的代理在API网关项目
API Gateway(auth等)在微服务部分中实现,负载均衡器将收集复杂API中的端点。完整的堆栈将是:
Load balancer -> Microcervice read part (with public API) -> Database -> Microcervice write part (with public API) -> Akka cluster
优点:
- 直接访问群集和数据库
- 快速响应
缺点:
复杂的微服务部分,混合图层
什么变体更可取或者是另一个最好?