【问题标题】:MassTransit Multiple ConsumersMassTransit 多个消费者
【发布时间】:2016-08-03 04:09:12
【问题描述】:

我有一个只有一个应用服务器的环境。我有一些消息需要一段时间才能服务(比如 10 秒左右),我想通过配置我的消费者应用程序运行代码的多个实例来处理这些消息来增加吞吐量。我已经阅读了“竞争消费者”模式,并认为在使用 MassTransit 时应该避免这种情况。根据 MassTransit 文档here,每个接收端点都应该有一个唯一的队列名称。我正在努力了解如何将此建议映射到我的环境。 是否有可能运行 N 个消费者实例,每个实例都接收相同的消息,但只有一个实例会实际执行它? 换句话说,我们可以实现“竞争消费者”模式,但跨多个队列而不是一个?

还是我看错了?我真的需要研究“发送”方法而不是“发布”吗? “发送”的缺点是它要求发送者直接知道端点的存在,并且我想动态地处理我拥有的消费者/端点的数量。 MassTransit 中是否有任何内置功能可以帮助跟踪有多少消费者实例/队列/端点可以为特定消息类型提供服务?

谢谢, 安迪

【问题讨论】:

    标签: masstransit


    【解决方案1】:

    因此,“避免竞争消费者”指南来自 MSMQ 是主要传输方式的时候。如果有多个线程从队列中读取,MSMQ 将会崩溃。

    如果您使用的是 RabbitMQ,那么竞争的消费者会非常出色。竞争的消费者是正确的答案。每个竞争消费将使用来自端点的相同接收。

    【讨论】:

      猜你喜欢
      • 2020-11-24
      • 1970-01-01
      • 1970-01-01
      • 2013-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多