2017-05-18 39 views
5

我正面臨連接ActiveMQ網絡的問題。通過activeMQ網絡轉發郵件時出現問題

我有兩個方案:

S1:我的應用程序連接到第一ActiveMQ的 「A」。這個activeMQ「A」連接到一個ActiveMQ「B」 - 這是導致我一些問題的場景。 S2:我的應用程序直接連接到ActiveMQ「B」。

在這兩種情況下,我們都發送數據到同一隊列,當然我們發送完全相同的數據。 預期結果:當ActiveMQ「B」接收到數據時,它應該在同一隊列中響應。

在場景S1中,數據由我的應用程序發送到ActiveMQ「A」,然後轉發到ActiveMQ「B」,但該ActiveMQ「B」似乎沒有響應,事實是ActiveMQ「A」的確沒有收到來自ActiveMQ「B」的數據。 這是我的主要問題,我不明白爲什麼它不工作,因爲如果我直接連接我的應用程序到ActiveMQ「B」我收到數據。

我試圖做一個簡單的架構下解釋S1和S2。

有沒有人已經遇到過這種問題?我應該在哪裏查找問題的原因?

enter image description here

編輯:更多的細節:

在ActiveMQ中「A」我可以看到有消費者(列「消費者數」等於5)然而,在ActiveMQ的「B」有不是消費者(「消費者數量」列是0),而應該是5,如在活動MQ「A」中那樣。有任何想法嗎 ?

+0

您能詳細說明一下您的情況S1,ActiveMQ B應該做什麼?是否有另一位消費者投票B服務器併產生響應? – Adonis

+0

我親身經歷過類似的情況,但您的情況可能會有所不同。如果您爲每個使用者使用單獨的隊列,則通信中斷可能是因爲阻塞隊列有特定使用者的大量待處理消息。檢查隊列並嘗試清理。 – YuVi

回答

0

ActiveMQ「A」和ActiveMQ「B」在兩種方式中都使用簡單的認證插件。我的問題是在回答時,ActiveMQ「B」試圖連接到Active MQ「A」但未能通過驗證......非常簡單!事實是,我沒有控制ActiveMQ「B」。 因此,解決方案是配置ActiveMQ「A」以接受來自ActiveMQ「B」的用戶/密碼。

1

可能與networkTTL配置有關。(http://activemq.apache.org/networks-of-brokers.html

在默認配置,消息可以去只有一個網絡中的一步。如果它從A到B,則不能回到A.

+0

我向我的連接器添加了networkTTL =「3」,但問題依然存在。我想添加一些關於我的問題:在activeMQ「A」中,我可以看到有消費者(「消費者數量」列等於5),但是在activeMQ「B」中沒有消費者(「消費者數量「是0),而在活動MQ」A「中應該是5。有任何想法嗎 ? – Ashbay

相關問題