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包中搜索該類

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章