Java activeMq tcp故障切换时如何处理连接故障
我正在使用activeMQ tcp故障切换连接,创建一个使用者,并订阅由生产者生成的主题。 现在如何管理网络故障?如果代理和客户端之间的连接断开,我如何知道何时再次建立连接?Java activeMq tcp故障切换时如何处理连接故障,java,activemq,Java,Activemq,我正在使用activeMQ tcp故障切换连接,创建一个使用者,并订阅由生产者生成的主题。 现在如何管理网络故障?如果代理和客户端之间的连接断开,我如何知道何时再次建立连接? 另外,我如何知道制作人是否已启动并运行?如果生产商重新启动;我如何知道,以便重新订阅主题?使用FailoverTransport,您不必管理重新连接,除非您指定maxReconnectAttempts,否则他将尝试不间断地重新连接 如果制作者重新启动,请重新订阅该主题??不需要,因为你的消费者是有联系的,他不必关心生产者
另外,我如何知道制作人是否已启动并运行?如果生产商重新启动;我如何知道,以便重新订阅主题?使用FailoverTransport,您不必管理重新连接,除非您指定maxReconnectAttempts,否则他将尝试不间断地重新连接 如果制作者重新启动,请重新订阅该主题??不需要,因为你的消费者是有联系的,他不必关心生产者 即使不需要,也要在故障转移状态更改时得到通知:
ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory("failover:(tcp://host1:5670)");
cf.setTransportListener(new TransportListener() {
@Override
public void transportResumed() {
}
@Override
public void transportInterupted() {
}
@Override
public void onException(IOException error) {
}
@Override
public void onCommand(Object command) {
}
});
使用FailoverTransport,您不必管理重新连接,除非您指定maxReconnectAttempts,否则他将尝试不间断地重新连接 如果制作者重新启动,请重新订阅该主题??不需要,因为你的消费者是有联系的,他不必关心生产者 即使不需要,也要在故障转移状态更改时得到通知:
ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory("failover:(tcp://host1:5670)");
cf.setTransportListener(new TransportListener() {
@Override
public void transportResumed() {
}
@Override
public void transportInterupted() {
}
@Override
public void onException(IOException error) {
}
@Override
public void onCommand(Object command) {
}
});
我试过这个;我的观察是,如果我从我的机器(消费者/订户)上拔下n/w电缆,15秒后,传输中断,之后,即使我连接了n/w电缆,也不会发生任何事情。(我订阅的主题没有任何新的更新)。主题不会持久化。如果您使用的主题没有持久订阅,则肯定不会持久化。您必须创建持久订阅或使用追溯消费者我使用的是追溯消费者,但不是持久订阅。我也应该使用持久订阅吗?这能解决我的消费者连接回n/w后无法获得更多更新的问题吗?通常追溯消费者就足够了,你能用消费者代码更新你的问题吗?activemq.xml我试过了;我的观察是,如果我从我的机器(消费者/订户)上拔下n/w电缆,15秒后,传输中断,之后,即使我连接了n/w电缆,也不会发生任何事情。(我订阅的主题没有任何新的更新)。主题不会持久化。如果您使用的主题没有持久订阅,则肯定不会持久化。您必须创建持久订阅或使用追溯消费者我使用的是追溯消费者,但不是持久订阅。我也应该使用持久订阅吗?这能解决我的消费者连接回n/w后无法获得更多更新的问题吗?通常追溯消费者就足够了,您能用消费者代码和activemq.xml更新您的问题吗