【发布时间】:2022-01-20 12:15:08
【问题描述】:
我正在尝试在微服务中的四个服务之间进行通信。每个服务都有单独的数据库。我正在使用传奇模式。 我的问题是,如果 RabbitMQ 出现故障或崩溃或无法恢复,如果没有消息队列的帮助,我将如何回滚或恢复数据库?
【问题讨论】:
标签: .net-core rabbitmq microservices saga
我正在尝试在微服务中的四个服务之间进行通信。每个服务都有单独的数据库。我正在使用传奇模式。 我的问题是,如果 RabbitMQ 出现故障或崩溃或无法恢复,如果没有消息队列的帮助,我将如何回滚或恢复数据库?
【问题讨论】:
标签: .net-core rabbitmq microservices saga
我假设您使用 SAGA 模式来保持微服务应用程序的一致性。此模式的主要组件是协调您的微服务的 Orchestrator,我假设在您的应用程序中您使用 rabitmq 进行消息传递。 一种方法是将消息存储在微服务的本地数据库中,如果您无法将消息发送到队列,您可以添加一个调度程序,该调度程序将在一段时间后尝试将消息发送到队列。 第二种方法是在集群模式下使用 rabitmq,这将防止您的应用程序出现单点故障。
【讨论】: