Rebus 节点同时充当竞争消费者和发布-订阅订阅者
Rebus node acting simultaneously as competing consumer and pub-sub subscriber
我有一个场景,其中有一组节点(N1
、N2
、N3
)必须同时
以pub-sub方式订阅消息类型T1
,即任何已发布的T1
必须传递到集合中的所有节点(N1
, N2
和 N3
)
在该集合中作为消息类型 T2
的竞争消费者运行,即,任何已发布的 T2
必须仅传送到该集合的一个节点
我知道如何使用两辆公共汽车做到这一点
第一个总线(用于发布-订阅)使用每个节点的输入队列。
第二条总线(用于竞争消费者)使用单个输入队列,由所有节点共享。
但是,有没有一种方法可以避免使用两辆总线并仅使用一辆总线来完成相同的行为?
谢谢
据我所知,您有两个选择:
1) 在每个节点中有两个总线实例,每个订阅者都有自己的输入队列,并且竞争的消费者都使用相同的队列(完全按照您描述的那样),或者
2) 每个节点都有一个订阅者,每个节点都使用自己的队列,然后手动路由T2
到其中一个订阅者。
在对您正在解决的问题一无所知的情况下,我最初的想法是 (1) 会更简单、更容易正确。 (2) 虽然可能很有趣 :)
如果您选择 (2),看看是否会很有趣订阅者可以简单地订阅 T2
,如果这是一个常规事件,他们会这样做,但是生产者会 - 而不是发布 T2
- 查找该消息的订阅者并简单地选择一个其中
我有一个场景,其中有一组节点(N1
、N2
、N3
)必须同时
以pub-sub方式订阅消息类型
T1
,即任何已发布的T1
必须传递到集合中的所有节点(N1
,N2
和N3
)在该集合中作为消息类型
T2
的竞争消费者运行,即,任何已发布的T2
必须仅传送到该集合的一个节点
我知道如何使用两辆公共汽车做到这一点
第一个总线(用于发布-订阅)使用每个节点的输入队列。
第二条总线(用于竞争消费者)使用单个输入队列,由所有节点共享。
但是,有没有一种方法可以避免使用两辆总线并仅使用一辆总线来完成相同的行为?
谢谢
据我所知,您有两个选择:
1) 在每个节点中有两个总线实例,每个订阅者都有自己的输入队列,并且竞争的消费者都使用相同的队列(完全按照您描述的那样),或者
2) 每个节点都有一个订阅者,每个节点都使用自己的队列,然后手动路由T2
到其中一个订阅者。
在对您正在解决的问题一无所知的情况下,我最初的想法是 (1) 会更简单、更容易正确。 (2) 虽然可能很有趣 :)
如果您选择 (2),看看是否会很有趣订阅者可以简单地订阅 T2
,如果这是一个常规事件,他们会这样做,但是生产者会 - 而不是发布 T2
- 查找该消息的订阅者并简单地选择一个其中