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 不擅长分配负载,尤其是当进程 运行 在队列所在的其他计算机上时。
使用 rebus,我希望能够从一个应用程序发布,并从多个应用程序订阅,其中每条消息仅由一个订阅者循环处理,如下所述: https://www.rabbitmq.com/tutorials/tutorial-two-dotnet.html
这可以用 rebus 实现吗?
是的,但是 "publish" 和 "subscribe" 这两个词在这里令人困惑,因为它不是文献中描述的 "Publish/Subscribe",因为 pub/sub 几乎意味着你不在乎有多少听众。
你想要的是发送一条消息,然后你希望将发送的消息分发给多个消费者。
对于 Rebus,这绝对是可能的。但是,您执行此操作的方式可能略微取决于您使用的是哪种传输方式(*)
大多数传输都很好地支持 competing consumers 模式,您只需启动多个进程,可能 运行 在多台机器上使用来自同一队列的消息。
这样,每条消息只被处理一次,并且每个消费者将以适合特定消费者的速率接收消息。
(*) 当多个进程从同一个队列中取出消息时,MSMQ 不擅长分配负载,尤其是当进程 运行 在队列所在的其他计算机上时。