通过阅读wiki中的Handing off work部分,您似乎可以通过单向模式以单向方式发布rebus。但我认为单向模式只允许bus.send?
如果在我有两个应用程序的场景中,两者都可以发布 SomethingHappened 消息,但只有一个应用程序应该处理来自ProcessManager的回复,例如: DoSomethingElse ,我该如何为这两个应用程序配置rebus?
此致
阴
答案 0 :(得分:1)
但我认为单向模式只允许bus.send?
只要具有正确设置的订阅存储,任何事都不会阻止您从单向客户端执行bus.Publish
。如果其他东西用一些订阅填充该订阅存储(例如,通过在db中手动插入它们,或者让另一个发布者处理订阅/取消订阅),那么当您发布时可能会发生某些事情;)
我应该如何为两个应用程序配置rebus?
如果没有完全清晰的情景图像,我就会想到
publisherA
StuffToPublish
StuffToPublish
映射到publisherA
的端点映射 - 因此,来自bus.Subscribe
的事件类型StuffToPublish
将使发布者A建立订阅如果您希望发布者A处理回复,即使该事件是由发布者B发布的,您也可以让B提供rebus-return-address
标题(否则会自动设置,如果B有输入队列),就像这样:
bus.AttacheHeader(someEvent, Headers.ReturnAddress, "publisherA");
这样,回复将被发送到publisherA
输入队列。