Microservices spring rest Web服务的编排

Microservices spring rest Web服务的编排,microservices,spring-kafka,saga,Microservices,Spring Kafka,Saga,如果我们有四个spring REST Web服务,比如说一个B C D,那么它们每个都有自己的数据库 如何使用基于编排的SAGA模式实现分布式事务 我可以使用SpringKafka+rest端点吗?您可以使用SAGA,但我建议使用Spiderwiz()。它应用了类似的事件驱动模式,但它的使用更加简单,并且消除了服务发现、发布订阅和其他开销难题的所有麻烦。您可以使用SAGA数据库模式。但对于复杂的工作流程,它更可取。让我解释一下, 首先,交易意味着什么? 它意味着分布式系统中单个逻辑工作单元和跨多

如果我们有四个spring REST Web服务,比如说一个B C D,那么它们每个都有自己的数据库

如何使用基于编排的SAGA模式实现分布式事务


我可以使用SpringKafka+rest端点吗?

您可以使用SAGA,但我建议使用Spiderwiz()。它应用了类似的事件驱动模式,但它的使用更加简单,并且消除了服务发现、发布订阅和其他开销难题的所有麻烦。

您可以使用SAGA数据库模式。但对于复杂的工作流程,它更可取。让我解释一下, 首先,交易意味着什么? 它意味着分布式系统中单个逻辑工作单元和跨多个服务的分布。简单地说,当microservice world首次出现时,您需要维护ACID(原子、一致、隔离和持久)属性。为此,您需要跨服务管理策略

我们可以同时使用编排和编排方式来实现SAGA模式。如果您的系统有非常复杂的工作流,那么最适合的模型是编排

回答您的问题:如果您首先使用编排方法,我们需要MessageBroker实现。所有事务都通过MessageBroker进行

在MessageBroker内部,您需要维护两个主队列。一个用于通过操作Q,另一个用于失败操作Q。 当A完成自己的操作后,将消息发布到MessageBroker,服务B始终侦听该MessageBroker和消息。像wise一样,所有服务都会监听并将自己的事务状态消息发送给代理。 如果任何服务自身操作失败,则消息发布到故障Q

这就是您需要实现的场景

此实现取决于您的系统规模。这种方法有很大的缺点:

  • 周期依赖性风险(每个服务流依赖于其他服务流)
优点:编排适合于简单的工作流程,并且服务较少。 没有单点故障

霍普得到了关于舞蹈传奇模式的ide

谢谢-dns-