根据这个答案的说法,使用带有"tcp“传输的”故障转移“协议是有好处的,即使只有一个地址。
除此之外,ActiveMQ文档还适用于以下内容(重点为我):
如果JMS崩溃,ActiveMQ可以使用故障转移:协议自动重新连接到可用的JMS。这不仅自动重新连接,它还将恢复任何临时目的地,会话,生产者和最重要的消费者。
这在使用"vm“传输时也适用吗?
我们经常看到队列使用者停下来接收消息,而队列被填满,而且我们还没有找到解决这个问题的方法。这是与ActiveMQ版本5.6.0-我们正在升级到5.14.5版本,但也想探索其他选项。
ActiveMQConnectionFactory的当前Spring配置如下所示:
<bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"
depends-on="amqEmbeddedBroker">
<property name="brokerURL" value="vm://localhost" />
<property name="watchTopicAdvisories" value="false" />
</bean>在这种情况下,将URL从vm://localhost更改为failover:(vm://localhost)是否会带来任何好处,即防止因任何原因关闭连接?当将URL更改为包含failover:部分时,我可以看到创建了一个FailoverTransport实例,但是在vm传输的情况下,它提供了什么好处吗?
发布于 2017-11-28 15:03:39
如果连接失败,故障转移将尝试重新连接。因此,如果您正在执行通常会导致连接失败崩溃的操作,您将不会看到异常,但它将静默地尝试重新连接。因此,如果您在内存代理中死了,客户端将保持沉默,可能会发出一些它试图重新连接的日志。
VM连接不会因为网络问题而失败,因此您可能需要进一步研究。但升级似乎是第一步。
https://stackoverflow.com/questions/47530980
复制相似问题