我目前正在开发一个架构,见下文。首先,我不确定这种架构是被称为事件驱动的还是数据驱动的架构,或者两者兼而有之。
有一些输入消息从前端发送到 T1 。首先验证这些消息,然后收集这些消息并最终评估。
我目前的方法是使用 MS A 中的所有元信息保留原始邮件, MS B 中的已排序集合以及 MS C <中的评估< / strong>即可。这将数据分离到适当关注的微服务。
在 T2 中,我只生成 MS B 所需的讯息。
在 T3 中,我只生成 MS C 所需的消息
但在评估集合时,需要来自 MS A 的所有元信息。那么如何处理这种呢?
或者我是否误解了这种方法&#34;通过Kafka传播微服务&#34;?
请随意提出批评!
谢谢你的建议!
答案 0 :(得分:2)
我认为这是一个消息驱动和数据驱动的架构,但这不应该是重要的。更重要的是微服务使用编排(而不是编排)。这question可以提供帮助。
最干净的架构是将所有数据放入消息中,这样,数量依赖性限制为2.此外,系统的弹性也会增加:如果微服务A关闭,其他下游微服务可以继续工作。
每个微服务只消耗感兴趣的消息部分而忽略另一个消息。这创建了一个漂亮且可扩展的流式处理流程。但是,如果消息太大,则应使用微服务A(或任何其他微服务)作为更多数据的参考。