Rebus 发布-订阅系统。由一个且仅一个订阅者处理每条消息

Rebus pub-sub system. Process each message by one and only one subscriber

使用 rebus,我希望能够从一个应用程序发布,并从多个应用程序订阅,其中每条消息仅由一个订阅者循环处理,如下所述: https://www.rabbitmq.com/tutorials/tutorial-two-dotnet.html

这可以用 rebus 实现吗?

是的,但是 "publish" 和 "subscribe" 这两个词在这里令人困惑,因为它不是文献中描述的 "Publish/Subscribe",因为 pub/sub 几乎意味着你不在乎有多少听众。

你想要的是发送一条消息,然后你希望将发送的消息分发给多个消费者。

对于 Rebus,这绝对是可能的。但是,您执行此操作的方式可能略微取决于您使用的是哪种传输方式(*)

大多数传输都很好地支持 competing consumers 模式,您只需启动多个进程,可能 运行 在多台机器上使用来自同一队列的消息。

这样,每条消息只被处理一次,并且每个消费者将以适合特定消费者的速率接收消息。


(*) 当多个进程从同一个队列中取出消息时,MSMQ 不擅长分配负载,尤其是当进程 运行 在队列所在的其他计算机上时。