2017-10-20 132 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的部件視爲自己的系統。

相關問題