![]() |
1
1
也就是说,您可以将它们转换为消息格式mA、mB和mC,而不是将A、B和C相互耦合。只要(mA,mB,mC)兼容,这些服务就能够相互通信。 实现这一点的一种方法是将mA、mB和mC限制为同一模式的不同“版本”,其中模式的演化受到限制
格雷格·杨的书 Versioning in an Event Sourced System
基本上,这就是管道——我们如何从一个系统到另一个系统获取消息的副本? 从概念上讲,您似乎希望C使用一个逻辑 outer join 由A和B产生的消息。因此,我想最直接的问题是,当前是否有来自A的这些消息的消费者不想要来自B的消息,反之亦然。如果这是您所知道的唯一用例,那么将事情简化为单个主题可能会有好处。 |
![]() |
2
4
你说的是上下文映射。BCs之间的关系。上游和下游。在两个业务连续性之间的关系中,决定哪一个是上游业务连续性和下游业务连续性不是您的选择。它们本身就是。您可以选择如何集成(使用RESTAPI、使用事件、同步、异步等)。您应该绘制一个上下文图,确定哪个战略模式适用于bc之间的每个关系,并决定如何实现它。 |
![]() |
3
2
在您选择集成模式之前,需要在战略层面上对业务子域、维护这些服务的团队、谁拥有什么、您期望模型如何发展等进行分析。 我建议看一下 DDD book 然后 Enterprise Integration Patterns 由霍普和伍尔夫具体实施。 |
![]() |
4
0
您的每个服务都应该使用对其特定业务逻辑最有意义的数据格式。 出于集成目的:
https://www.enterpriseintegrationpatterns.com/patterns/messaging/ChannelAdapter.html |
|
recursivePython · C#发布中不包含依赖项 6 年前 |
![]() |
ChumboChappati · UML:组合或依赖 6 年前 |
![]() |
PCL · 使用Nexus工件库的多项目gradle构建 7 年前 |
![]() |
novafluff · 依赖于打包为war的模块,需要类 7 年前 |