2017-10-20 162 views
-1

我有一个现有的系统,通过MassTransit发布消息到一些Azure服务总线主题名为CompanyName.SystemName.Messages.SomethingGotUpdated。如何使用Rebus配置新系统作为该特定主题的订阅者,然后将所有消息发送到相应的IHandleMessages<SomethingGotUpdated>处理程序?如何与使用Rebus的MassTransit创建的Azure Service Bus主题互操作?

我查看了文档,但无法真正弄清楚如何完成此操作。任何帮助是极大的赞赏!

回答

1

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

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

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

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

相关问题