【问题标题】:Competing Consumers from load balancing application in MassTransit/RabbitMQ来自 MassTransit/RabbitMQ 中负载平衡应用程序的竞争消费者
【发布时间】:2012-06-19 13:12:24
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# load-balancing rabbitmq high-availability masstransit


    【解决方案1】:

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

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

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

    我不知道 Mass Transit 是如何工作的,但是,如果使用请求/响应,您应该将消息单次传递给单个消费者,如果消息没有被确认(消费者崩溃)另一个消费者应该捡起来。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-24
      • 1970-01-01
      • 2012-05-17
      • 2016-06-06
      • 2010-12-05
      • 1970-01-01
      相关资源
      最近更新 更多