我已經建立了帶有weblogic服務器12c的統一分佈式隊列。我正在嘗試使用jms分佈式隊列來實現交付和高可用性。在我的prototpe測試部署中,我在集羣中有兩臺託管服務器,讓我們說managed_server1和managed_server2。這個託管服務器中的每個託管jms服務器,即jms server1和jms server2。我已經使用jdbc持久性存儲配置了jms服務器。我已啓用服務器關聯。jms高可用性消息傳遞順序
- 我有一個生產者運行如java queuproducer t3 ::/managed_server1。我發出4條消息。從weblogic監控控制檯,我看到queu中有4條消息,因爲沒有使用者到隊列中。
- 現在我關閉managed_server1。
- 調出一個消費者來監聽java queuconsumer t3:// managed_server2。此消費者不能消費消息,因爲生產者將所有消息發送到jms server1,並且它已關閉。
- 啓動託管服務器1,啓動消費者以聽取t3:// managed_server1我可以獲取所有消息。
這是我的問題,如果managed_server1發生故障,那麼它從來沒有恢復過來,我是否會丟失我的所有消息。此外,如果有另一位製片人將消息發送到Java queuproducer T3:// managed_server2然後根據這些生產者之間的時間信息的順序不guanranteed。
我有點迷路,我是否錯過了一些東西。單位能否幫助我克服這一點。或者我應該使用分佈式主題,而不是分佈式隊列,所有的JMS服務器將接收所有來自生產商的消息,但如果在我的consumre監聽一個JMS服務器故障有我的應用程序只有一個消費者,當我切換到其他jms服務器,我可能會開始從一開始就從我離開的地方得到消息。
任何關於相同的建議將有所幫助。
您能否確認您使用的是單個JMS連接工廠? –
是的,它使用一個jms連接工廠。 – balaji