Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java activeMq tcp故障切换时如何处理连接故障_Java_Activemq - Fatal编程技术网

Java activeMq tcp故障切换时如何处理连接故障

Java activeMq tcp故障切换时如何处理连接故障,java,activemq,Java,Activemq,我正在使用activeMQ tcp故障切换连接,创建一个使用者,并订阅由生产者生成的主题。 现在如何管理网络故障?如果代理和客户端之间的连接断开,我如何知道何时再次建立连接? 另外,我如何知道制作人是否已启动并运行?如果生产商重新启动;我如何知道,以便重新订阅主题?使用FailoverTransport,您不必管理重新连接,除非您指定maxReconnectAttempts,否则他将尝试不间断地重新连接 如果制作者重新启动,请重新订阅该主题??不需要,因为你的消费者是有联系的,他不必关心生产者

我正在使用activeMQ tcp故障切换连接,创建一个使用者,并订阅由生产者生成的主题。 现在如何管理网络故障?如果代理和客户端之间的连接断开,我如何知道何时再次建立连接?
另外,我如何知道制作人是否已启动并运行?如果生产商重新启动;我如何知道,以便重新订阅主题?

使用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更新您的问题吗