Rebus节点同时作为竞争的消费者和发布订阅用户



我有一个场景,其中有一组节点(N1, N2, N3)必须同时

  • 以发布-订阅的方式订阅消息类型T1,即任何已发布的T1必须发送到集合(N1, N2 N3)中的所有节点

  • 作为消息类型T2的竞争消费者在此集合中操作,即任何已发布的T2必须仅传递给集合

  • 中的一个节点。

我知道如何使用两个总线来做到这一点

  • 第一条总线(用于pub-sub)使用每个节点的输入队列。

  • 第二个总线(用于竞争消费者)使用单个输入队列,由所有节点共享。

然而,是否有一种方法可以避免使用两个总线并仅使用一个总线完成相同的行为?

谢谢

据我所知,您有两个选择:

1)在每个节点中有两个总线实例,其中订阅者都有自己的输入队列,而竞争的消费者都使用相同的队列(与您所描述的完全相同),或者

2)在每个节点中都有一个订阅者,每个订阅者使用自己的队列,然后手动T2路由到其中一个订阅者。

在对你正在解决的问题一无所知的情况下,我最初的想法是(1)会更简单,更容易解决。(2)可能会很有趣:)

如果你选择做(2),看看订阅者是否可以简单地订阅T2,因为如果这是一个常规事件,他们就会这样做,这将是很有趣的,但随后生产者将-而不是发布T2 -查找该消息的订阅者并简单地选择其中一个。

相关内容

  • 没有找到相关文章

最新更新