所以我使用java代码连接到ActiveMQ Artemis 2.19.1集群
String brokerUrl = "failover:(tcp://10.5.1.1:61616,tcp://10.6.1.2:61617)?nested.connectionTimeout=1000&randomize=false&maxReconnectAttempts=0&maxReconnectDelay=1000";
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
我观察到,当第一个节点关闭时,它会成功连接到第二个节点,但每次我的生产者发送消息时,它都会有1秒的延迟,因为它每次都试图连接到第一个节点。有没有办法将连接配置为继续使用最后一个成功的节点,而不是总是尝试第一个节点。我在文档中没有看到任何关于我正在寻找的这种行为的参考。
我不想因为担心它无法连接到工作节点而降低超时值,我认为这不应该是正确的方法。
此外,当第一节点联机时,它将自动连接到第一节点,而不是保持与第二节点的连接
根据您的描述,您的生产者每次发送消息时都会创建一个新的连接。如果是这样的话,那么这几乎可以肯定是这里的问题,而且这也是一个非常著名的反模式,你应该尽可能避免。