我刚刚创建了一个 API,其中来自 API 的请求使用请求/响应模式通过 MassTransit/RabbitMQ 转发到后端服务。我们现在正在考虑将其推向生产,并希望在不同的服务上运行应用程序的多个实例(API 和服务),并使用负载均衡器在它们之间分配请求。
这使我们处于一个位置,如果其中一台服务器出于任何原因从池中取出,我们可能会丢失所有消息。我正在考虑在服务器之间创建一个 RabbitMQ 集群(每个服务器都有一个本地安装),并且想知道在这种情况下我将如何设置竞争消费者。
RabbitMQ 或 MassTransit 是否会处理此问题,以便只有一个消费者会收到请求,还是所有消费者都会收到并尝试响应?此外,对于 RabbitMQ 集群,MassTransit/RabbitMQ 如何处理节点故障?