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包中搜索该类

你可能感兴趣的:(java)