ActiveMQ 经典故障转移配置

问题描述 投票:0回答:1

我们的API可以使用ActiveMQ向我们的workerhost服务发送消息。

activemq:failover:(tcp://brokera.domain.net:21249,tcp://brokerb.domain.net:21249)?maxReconnectAttempts=2&timeout=3000&initialReconnectDelay=2000
activemq:failover:(tcp://brokera.domain.net:21249,tcp://brokerb.domain.net:21249)?transport.maxReconnectAttempts=2&transport.timeout=3000&initialReconnectDelay=2000

我们似乎在某种程度上可以互换使用上述 URL。请注意,第二个指定两个参数的

transport
模式。据我们所知,这在生产中已按预期工作,但不可否认,我们希望我们从未真正需要故障转移!

我已经做了一些测试(通过手动停止 LB 节点上的 ActiveMq),并且故障转移似乎在这两个配置中都按预期工作。

但是,ActiveMQ 并没有规定

maxReconnectAttempts
timeout
应该以
transport
为前缀,因此我们最初担心的是它们没有按预期工作。请参阅此处

更令人困惑的是,TCP 传输的 ActiveMQ 文档表示客户端连接必须忽略

transport
模式。即使这样,我上面提到的两个属性也不在支持的参数列表中。请参阅此处

我们正在寻找我们应该使用的正确连接字符串。 或者,更好地测试或确保使用这些参数的方法将非常有用。

编辑:我们使用 .NET Core 6 客户端 Apache.NMS.ActiveMQ 版本 1.8.0。经纪商版本5.13.2

activemq
1个回答
0
投票

链接的文档适用于 Java JMS 客户端,在解析 URI 选项时,其操作方式与 NMS Openwire 客户端不同,因此您需要参考客户端文档此处

从我在 NMS 客户端文档中看到的内容来看,传输选项必须以“传输”为前缀。标签以便客户端从 URI 中解析它们。

© www.soinside.com 2019 - 2024. All rights reserved.