我尝试使用故障转移 URI,使用 Qpid JMS 0.48.0 客户端并启用 SSL 连接到 RabbitMQ 集群(启用 AMQP 1.0 插件)。
这不起作用:
failover:(amqps://host1:5671?transport.verifyHost=false,amqps://host2:5671?transport.verifyHost=false,amqps://host3:5671?transport.verifyHost=false)
但这可行(没有 SSL):
failover:(amqp://host1:5672,amqp://host2:5672,amqp://host3:5672)
SSL 配置良好,因为它有效:
amqps://host1:5671?transport.verifyHost=false
标准输出上没有错误消息,没有日志。
连接到 ActiveMQ Artemis 集群时,我得到了完全相同的行为。
此外,我在 Python 中从 Qpid Proton 客户端使用带有 SSL 的多个 URI 也没有问题:
server_addr = ['amqps://host1:5671', 'amqps://host2:5671', 'amqps://host3:5671']
你能告诉我发生了什么事吗?
使用不同的 AMQP 服务器实现测试客户端,表明客户端启用或禁用验证主机选项(无论是否存在故障转移)都没有问题。您应该在路径上使用 log4j 之类的工具启用客户端日志记录,并收集连接断开周期周围的数据,并确定 RabbitMQ 失败的原因。
您可以这样连接:
failover:amqps://host1:5671,amqps://host2:5671?transport.verifyHost=false