【发布时间】:2017-04-25 18:07:51
【问题描述】:
我正在使用 activeMQ tcp 故障转移连接并创建消费者并订阅生产者生成的主题。 现在如何管理网络故障?如果代理和客户端之间的连接断开,我如何知道何时再次建立连接? 另外,我如何知道生产者是否启动并运行?生产者重启的情况下;我怎么知道它,以便我可以重新订阅主题?
【问题讨论】:
我正在使用 activeMQ tcp 故障转移连接并创建消费者并订阅生产者生成的主题。 现在如何管理网络故障?如果代理和客户端之间的连接断开,我如何知道何时再次建立连接? 另外,我如何知道生产者是否启动并运行?生产者重启的情况下;我怎么知道它,以便我可以重新订阅主题?
【问题讨论】:
使用 FailoverTransport,您不必管理重新连接,除非您指定 maxReconnectAttempts,否则他会尝试无限重新连接
如果生产者重启,重新订阅主题??不需要,因为您的消费者已连接,他不必关心生产者
即使不需要,也会收到有关 FailoverTransport 状态更改的通知:
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) {
}
});
【讨论】: