繁体   English   中英

ActiveMQ故障转移连接URL

[英]ActiveMQ failover connection url

对于ActiveMQ故障转移协议,我有两个问题。

问题1 :当我使用嵌套的以下URL时,它无法连接到ActiveMQ。

failover:(tcp://192.168.1.111:61616)?nested.jms.useAsyncSend=true&initialReconnectDelay=1000&maxReconnectAttempts=-1

问题2 :跟随url可以正常工作。 它还在第一次重新启动时重新连接到ActiveMQ,但是当我第二次关闭ActiveMQ时,Java程序终止,也没有任何异常。

failover:(tcp://192.168.1.111:61616)?jms.useAsyncSend=true&initialReconnectDelay=1000&maxReconnectAttempts=-1

ActiveMQ版本: 5.10.0

参考: http : //activemq.apache.org/failover-transport-reference.html

嵌套前缀仅适用于适用于故障转移URI内的内部TCP / SSL传输的选项,或可能适用于使用多播发现等发现的代理地址的选项。它们不适用于连接级别选项(以'jms开头的选项。' 例如)。 如果设置为以下内容,则第一个URI将是正确的:

failover:(tcp://192.168.1.111:61616)?jms.useAsyncSend=true&initialReconnectDelay=1000

这是因为jms.useAsyncSend选项将整个连接应用于故障转移 URI内的给定基于tcp的传输的单个连接。

嵌套选项将是soTimeouttcpNoDelay等。

您无需尝试将重新连接尝试设置为无穷大,因为这曾经是并且仍然是默认假设,仅当您要将其限制为固定的尝试次数时,才需要设置此选项。

如果您的应用程序在故障转移重新连接周期中关闭,那么我的猜测是您正在依靠ActiveMQ库维护至少一个非守护进程线程以使其保持活动状态,这确实是一个糟糕的假设,它依赖于任何第三方来保持您的运行应用程序通常是一种不好的做法,您应该让自己的设计强制应用程序保持运行状态,直到您真正希望将其关闭为止。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM