我正在设计微服务架构中的评论分析平台。
应用程序如下所示;
我有3个微服务。
问题出在某个时候,验证服务需要获得站点a的所有评论,应用验证规则并生成错误(如果有)。我知道共享数据库架构和实体会破坏微服务架构。
一种可能的解决方案是
这种方法的两个可能的缺点是
那么,在没有服务的情况下在微服务之间共享海量数据的最佳实践是什么?
我阅读了很多有关使用消息传递队列的信息,但是我认为使用消息传递队列共享千兆字节的数据并不好。
编辑1:除了共享实体,还可以将数据存储区与rest API一起使用是一种解决方案?假设我正在使用mongodb,而不是在微服务之间共享我的实体对象,我可以使用mongo的rest接口(http://restheart.org/)并尽可能查询数据。
这里的问题不是“共享大量数据”,而是您选择基于其分离微服务的边界。
从您的需求中可以看出,您选择分离的3个微服务(评论,验证,导入/导出)实际上是在相同的上下文和业务域中运行的,即评论。
我鼓励您重新考虑您的设计决策,并考虑将评论作为一个微服务,作为一个黑盒子来处理所有评论操作和逻辑。
| 归档时间: |
|
| 查看次数: |
3955 次 |
| 最近记录: |