【问题标题】:Multiple consumers for a single queue in MassTransitMassTransit 中单个队列的多个消费者
【发布时间】:2009-09-08 15:52:51
【问题描述】:

是否可以让多个消费者监听单个 MSMQ 实例并使用选择性消费者接口让每个消费者处理不同的消息子集?我似乎无法使用 pub/sub 让这个场景正常工作 - 队列上的单个消费者工作正常,但是当使用 >1 个消费者(同一可执行文件的多个实例)时,任何地方都不会出现任何消​​息。据我了解,这不是“竞争消费者”的情况,因为只有一个消费者会处理一条消息。

感谢任何帮助或指点。

【问题讨论】:

    标签: msmq messaging masstransit


    【解决方案1】:

    如果您使用 MassTransit 从 MSMQ 队列分派消息,建议该队列位于盒子的本地。

    话虽如此,如果您有多个进程从同一个队列中读取以分配消息负载,则可以使用选择性接收仅在每个实例中使用与该进程相关的消息。

    例如,如果您有多个向服务发送消息的应用程序实例,并且该服务使用相关消息进行响应,则您可以通过标识符订阅相关消息,并且只会传递那些订阅的消息。未被选中的消息将保留在队列中,直到被任何感兴趣的进程处理。

    由于这种模式,强烈建议对消息设置过期时间,以便忽略的响应不会随着时间的推移阻塞队列。

    在通过消息传递复制请求/响应模式时,这种情况很常见。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      相关资源
      最近更新 更多