【发布时间】:2021-04-17 20:56:31
【问题描述】:
我希望了解使用编排的 Saga 模式的工作原理。
在我找到的所有参考资料中,似乎每个步骤都需要使用异步通信进行通信,例如队列或事件流集线器。
我在想是否真的有必要在每个步骤之间使用异步通信,或者我可以使用 Http 同步来保证每个步骤都是幂等的?
例如
我收到一个存储在队列或事件流中心(如 Kafka)中的 http 请求。然后是单个消费者,消费消息并执行一系列同步幂等步骤,就像 SAGA 编排机制一样。如果其中一个步骤失败,消息最终会被重新处理,所以如果它失败了,我可以补偿一个步骤。
【问题讨论】:
标签: microservices distributed-transactions saga outbox-pattern