2016-11-06 12 views
1

我正在使用RebusMSMQ。我嘗試過Rebus,在這種情況下,我的製作人在不同的機器上向消費者發送消息,並且工作正常。使用Rebus負載平衡器時的類型初始化異常

現在我需要使用多個消費者,並且需要在他們之間分配負載。我在生產者機器上運行http://mookid.dk/oncode/archives/3621中的樣本。但是我從第一行的負載平衡器中得到了以下異常。

我有一個在我的本地機器命名爲經銷商隊列和我的工人隊列存在,他們的名字是正確的

「未能從程序集 加載類型Rebus.Logging.RebusLoggerFactory「滷麪,版本= 2.0.1.0,文化=中立, 公鑰=空」。 「:」 Rebus.Logging.RebusLoggerFactory」

能否請你幫我解決這個問題?

回答

0

問題是負載均衡器已經老化,不能與「Rebus 2」(這是Rebus版本0.90.0及以上版本)一起使用。

儘管您可以使用Rebus輕鬆實現負載均衡器,但您可以簡單地創建一個使用Rebus內置傳輸消息轉發功能的端點。

This answer演示如何在配置Rebus時通過調用AddTransportMessageForwarder來配置傳輸消息轉發。

這樣做的好處是它可以節省消息經歷很多步驟(例如反序列化,處理程序查找等),因此速度非常快。

當然,這完全取決於您實現負載平衡算法。它可能非常簡單,只需從一組隊列名稱中選擇即可,然後它們之間就會簡單地爲round-robin

+0

非常感謝您的評論。通過做一些研究,我想到了使用ha-proxy負載平衡器的rabbitmq ha集羣。現在我試圖從rebus連接到我的負載均衡器,但我不知道如何爲rebus設置連接字符串。當我通過它們的連接字符串單獨連接到節點時,它運行良好(例如:amqp:// test:[email protected]:5672)。只有當我修改連接字符串以使用負載平衡器時,它才起作用。我的負載均衡器connectionstring是amqp://10.182.40.220:5670。你能告訴我我做錯了什麼嗎? –