做在我的ActiveMQ的客戶端時,我指定要連接到哪個經紀人,有什麼我已經試過指定這是什麼故障運輸與單一URI
tcp://host:port
和
failover:(tcp://host:port)
之間的區別停止並啓動代理,在這兩種情況下,客戶端在重新啓動時都會再次找到代理。我還沒有嘗試使用流中的消息(我正在使用隊列)或其他網絡故障,以確定是否存在差異。
希望有人有一個明確的答案,因爲我發現的文檔有點含糊。
感謝
做在我的ActiveMQ的客戶端時,我指定要連接到哪個經紀人,有什麼我已經試過指定這是什麼故障運輸與單一URI
tcp://host:port
和
failover:(tcp://host:port)
之間的區別停止並啓動代理,在這兩種情況下,客戶端在重新啓動時都會再次找到代理。我還沒有嘗試使用流中的消息(我正在使用隊列)或其他網絡故障,以確定是否存在差異。
希望有人有一個明確的答案,因爲我發現的文檔有點含糊。
感謝
故障轉移協議還允許您提供一些有用的連接參數。對於前:
failover:(tcp://host:port)?jms.useAsyncSend=true&timeout=5000
這裏timeout=5000
將確保5秒後救助初始連接嘗試,如果代理不可用或不響應。
謝謝。兩個答案都是正確的,所以我選擇了最有用的方法。 –
如果您使用故障轉移,則客戶端庫進入重新連接循環,當你失去與服務器的連接。網絡故障將隱藏在您的應用中。如果你沒有使用故障轉移,那麼當你失去連接時,你的應用程序將得到一個JMS錯誤,告訴你你失去了連接。
謝謝。這很有道理。 –
故障轉移對於處理代理或系統故障問題非常有用,並提供了耐久性。
故障切換:(TCP://主機1:端口,TCP://主機2:端口,TCP:// host3上:端口)jms.useAsyncSend =真&隨機化=假
這裏?如果你使randomize = true,那麼它將同時使用所有3個經紀人,randomize = false意味着每次使用一個經紀人,當正在運行的經紀人停止時,從休眠經紀人中選擇任何經紀人。 useAsyncSend = true將以異步方式運行消息傳遞系統,與同步相比,消息傳遞系統的速度更快。
如果有人很好奇我爲什麼問,我的客戶端在我使用故障轉移URI時會重複EOFExceptions。不幸的是,它只是在特定的環境中做到這一點,我正在努力重現或理解原因,所以我試圖理解移除故障轉移的後果。 EOFExceptions可能是未來的問題! –