我们的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