如何使用Rebus与MassTransit创建的Azure Service Bus主题互操作?

时间:2017-10-20 03:06:09

标签: c# azureservicebus masstransit rebus azure-servicebus-topics

我有一个现有系统,通过MassTransit将消息发布到名为CompanyName.SystemName.Messages.SomethingGotUpdated的某个Azure Service Bus 主题。如何使用Rebus配置新系统作为该特定主题的订户,然后将所有消息路由到相应的IHandleMessages<SomethingGotUpdated>处理程序?

我查看了文档,但无法真正弄清楚如何实现这一目标。非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

您应该通过创建基于MassTransit的接收器来接收来自给定主题的消息,然后将消息(通过使用Rebus'one-way client)转发到Rebus端点。

你应该这样做的原因是,MassTransit和Rebus最有可能以稍微不同的方式使用Azure Service Bus,并且消息上的标题截然不同,这意味着两条服务总线不会很容易接线兼容。

有些人可能会想到以某种方式解决这样的问题的冲动,可能是通过在incoming messages pipeline中插入一个将MassTransit标题映射到Rebus标题的步骤,但我担心你甚至不会拥有你的执行步骤,因为Rebus需要存在特定的消息ID标头,否则它会立即将消息移动到错误队列。

我的建议是考虑基于MassTransit的系统,就好像它使用一个完全独立的网络进行通信一样,然后将基于Rebus的部件视为一个独立的系统。