繁体   English   中英

来自MassTransit / RabbitMQ中负载均衡应用程序的竞争消费者

[英]Competing Consumers from load balancing application in MassTransit/RabbitMQ

我刚刚创建了一个API,其中来自API的请求通过MassTransit / RabbitMQ使用请求/响应模式转发到后端服务。 我们现在正在考虑将其推向生产阶段,并希望在不同的服务上运行多个应用程序实例(包括API和服务),负载均衡器在它们之间分配请求。

这使我们处于一个位置,如果其中一个服务器由于任何原因从池中取出,我们可能会丢失所有消息。 我正在考虑在服务器之间创建一个RabbitMQ集群(每个服务器都有本地安装),并且想知道如何在这个实例中设置竞争消费者。

RabbitMQ或MassTransit是否处理此问题,以便只有一个消费者会收到请求,或者所有消费者都会收到请求并尝试响应? 另外,使用RabbitMQ集群,MassTransit / RabbitMQ如何处理节点失败?

你应该看看这个文件。 http://www.rabbitmq.com/distributed.html

非常好地解释了常见的分布式场景。 对于您的场景,我认为联合比群集更合适。 如果要进行群集,则应查看镜像队列。

如果您只需要性能,那么您最好使用单个服务器来处理消息队列,而另一个服务器将连接到它并生成/使用消息。

我不知道公共交通是如何运作的,但是,如果使用请求/响应,您应该向单个消费者发送一条消息,如果消息没有被消息(消费者崩溃),另一个消费者应该接收它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM