1. 程式人生 > >activeMQ 自動重連機制

activeMQ 自動重連機制

在使用activeMQ的時候(沒有整合spring),發現當broker掛掉或者重啟的時候,consumer就會斷開,不會在次嘗試去接受訊息,

(使用spring整合activeMQ)會解決這個問題.

如果說你不想使用spring,那麼接下來告訴你該怎麼辦.

在apache官網上有介紹自動重連機制.

	connectionFactory = new ActiveMQConnectionFactory(
		ActiveMQConnection.DEFAULT_USER,
		ActiveMQConnection.DEFAULT_USER,
		"failover:(tcp://host:61616)?initialReconnectDelay=1000&maxReconnectDelay=30000");

加入failover引數.(

failover:(tcp:url...)url 可以為多個 
)

當時我在環境中測試的時候,會出現一個情況,就是當broker掛掉的時候,consumer會斷開程式
根據
http://blog.csdn.net/kimmking/article/details/8447517
這篇文章所講是需要修改activeMQ-core.5.x.jar 中的
FailoverTransport.java

reconnectTaskFactory = new TaskRunnerFactory();
        System.out.println("init-setDaemon-false");
        reconnectTaskFactory.setDaemon(false);/**設定為false*/
        reconnectTaskFactory.init();
########
修改方法:
把source.jar中的FailoverTransport.java 拉到專案的src下(保證包名一致,引入相關依賴)
修改-編譯-啟動
這時候程式就會去載入src下面FailoverTransport.java 
而不會去jar包中搜索該類