ActiveMQ Artemis: сообщения не пересылаются на другой узел с потребителем, подключенным к очереди

  • Окружающая среда: Ubuntu 20.04 LTS
  • Версия ActiveMQ Artemis: 2.24.0
  • Версия JDK: OpenJDK 11

У меня есть кластер, состоящий из двух узлов. Два broker.xml как показано ниже

узел1 (брокер_1067):

<?xml version='1.0'?>

<configuration xmlns = "urn:activemq"
               xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
               xmlns:xi = "http://www.w3.org/2001/XInclude"
               xsi:schemaLocation = "urn:activemq /schema/artemis-configuration.xsd">

   <core xmlns = "urn:activemq:core" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation = "urn:activemq:core ">

      <name>broker_1067</name>

      <persistence-enabled>true</persistence-enabled>
      
      <!-- .... skip some configs ... -->

      <connectors>
         <connector name = "cluster-connect">tcp://192.168.10.67:61616</connector>
      </connectors>

      <disk-scan-period>5000</disk-scan-period>
      <max-disk-usage>90</max-disk-usage>
      <critical-analyzer>true</critical-analyzer>
      <critical-analyzer-timeout>120000</critical-analyzer-timeout>
      <critical-analyzer-check-period>60000</critical-analyzer-check-period>
      <critical-analyzer-policy>HALT</critical-analyzer-policy>
      <page-sync-timeout>1008000</page-sync-timeout>    
      <global-max-messages>-1</global-max-messages>

      <acceptors>
         <!-- Acceptor for every supported protocol -->
         <acceptor name = "artemis">tcp://192.168.10.67:61616?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;amqpMinLargeMessageSize=102400;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;amqpDuplicateDetection=true;supportAdvisory=false;suppressInternalManagementObjects=false</acceptor>

         <!-- AMQP Acceptor.  Listens on default AMQP port for AMQP traffic.-->
         <acceptor name = "amqp">tcp://192.168.10.67:5672?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=AMQP;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;amqpMinLargeMessageSize=102400;amqpDuplicateDetection=true</acceptor>
      </acceptors>

      <cluster-user>alt_cluster</cluster-user>
      <cluster-password>alt_cluster</cluster-password>

      <broadcast-groups>
         <broadcast-group name = "bg-group1">
            <group-address>231.7.7.6</group-address>
            <group-port>9876</group-port>
            <broadcast-period>5000</broadcast-period>
            <connector-ref>cluster-connect</connector-ref>
         </broadcast-group>
      </broadcast-groups>

      <discovery-groups>
         <discovery-group name = "dg-group1">
            <group-address>231.7.7.6</group-address>
            <group-port>9876</group-port>
            <refresh-timeout>10000</refresh-timeout>
         </discovery-group>
      </discovery-groups>

      <cluster-connections>
          <cluster-connection name = "my-cluster">
            <address>test.TestQueue</address>
            <connector-ref>cluster-connect</connector-ref>
            <message-load-balancing>ON_DEMAND</message-load-balancing>
            <max-hops>0</max-hops>
            <discovery-group-ref discovery-group-name = "dg-group1"/>
         </cluster-connection>
      </cluster-connections>

      <security-settings>
         <security-setting match = "#">
            <permission type = "createNonDurableQueue" roles = "amq"/>
            <permission type = "deleteNonDurableQueue" roles = "amq"/>
            <permission type = "createDurableQueue" roles = "amq"/>
            <permission type = "deleteDurableQueue" roles = "amq"/>
            <permission type = "createAddress" roles = "amq"/>
            <permission type = "deleteAddress" roles = "amq"/>
            <permission type = "consume" roles = "amq"/>
            <permission type = "browse" roles = "amq"/>
            <permission type = "send" roles = "amq"/>
            <!-- we need this otherwise ./artemis data imp wouldn't work -->
            <permission type = "manage" roles = "amq"/>
         </security-setting>
         <security-setting match = "ActiveMQ.Advisory.#">
            <permission type = "createNonDurableQueue" roles = "amq,topicadmin,mdmsusers,tpcusers,bdusers,nondurableusers"/>
            <permission type = "deleteNonDurableQueue" roles = "amq,topicadmin,mdmsusers,tpcusers,bdusers,nondurableusers"/>
            <permission type = "createDurableQueue" roles = "amq,topicadmin,mdmsusers,tpcusers,bdusers"/>
            <permission type = "deleteDurableQueue" roles = "amq,topicadmin,mdmsusers,tpcusers,bdusers"/>
            <permission type = "createAddress" roles = "amq,topicadmin,mdmsusers"/>
            <permission type = "deleteAddress" roles = "amq,topicadmin,mdmsusers"/>
            <permission type = "consume" roles = "amq,topicadmin,mdmsusers,tpcusers,bdusers,nondurableusers"/>
            <permission type = "browse"  roles = "amq,topicadmin,mdmsusers,tpcusers,bdusers,nondurableusers"/>
            <permission type = "send"    roles = "amq,topicadmin,mdmsusers,tpcusers"/>
            <!-- we need this otherwise ./artemis data imp wouldn't work -->
            <permission type = "manage" roles = "amq"/>
         </security-setting>
         <security-setting match = "test.TestQueue">
            <permission type = "createNonDurableQueue" roles = "amq,topicadmin"/>
            <permission type = "deleteNonDurableQueue" roles = "amq,topicadmin"/>
            <permission type = "createDurableQueue" roles = "amq,topicadmin"/>
            <permission type = "deleteDurableQueue" roles = "amq,topicadmin"/>
            <permission type = "createAddress" roles = "amq"/>
            <permission type = "deleteAddress" roles = "amq"/>
            <permission type = "consume" roles = "amq,topicadmin"/>
            <permission type = "browse" roles = "amq,topicadmin"/>
            <permission type = "send" roles = "amq,topicadmin"/>
            <!-- we need this otherwise ./artemis data imp wouldn't work -->
            <permission type = "manage" roles = "amq"/>
         </security-setting>
      </security-settings>

      <address-settings>
         <!-- if you define auto-create on certain queues, management has to be auto-create -->
         <address-setting match = "activemq.management#">
            <dead-letter-address>DLQ</dead-letter-address>
            <expiry-address>ExpiryQueue</expiry-address>
            <redelivery-delay>0</redelivery-delay>
            <!-- with -1 only the global-max-size is in use for limiting -->
            <max-size-bytes>-1</max-size-bytes>
            <message-counter-history-day-limit>10</message-counter-history-day-limit>
            <address-full-policy>PAGE</address-full-policy>
            <auto-create-queues>true</auto-create-queues>
            <auto-create-addresses>true</auto-create-addresses>
         </address-setting>
         <!--default for catch all-->
         <address-setting match = "#">
            <dead-letter-address>DLQ</dead-letter-address>
            <expiry-address>ExpiryQueue</expiry-address>
            <redelivery-delay>0</redelivery-delay>
            <!-- if max-size-bytes and max-size-messages were both enabled, the system will enter into paging
                 based on the first attribute to hits the maximum value -->
            <!-- limit for the address in bytes, -1 means unlimited -->
            <max-size-bytes>-1</max-size-bytes>
            <!-- limit for the address in messages, -1 means unlimited -->
            <max-size-messages>-1</max-size-messages>           
            <page-size-bytes>10M</page-size-bytes>            
            <max-read-page-messages>1000</max-read-page-messages>            
            <max-read-page-bytes>1M</max-read-page-bytes>
            <message-counter-history-day-limit>10</message-counter-history-day-limit>
            <address-full-policy>PAGE</address-full-policy>
            <auto-create-queues>false</auto-create-queues>
            <auto-create-addresses>false</auto-create-addresses>
            <auto-delete-queues>false</auto-delete-queues>
            <auto-delete-addresses>false</auto-delete-addresses>
            <redistribution-delay>0</redistribution-delay>
         </address-setting>
         <address-setting match = "test.TestQueue">
            <redelivery-delay>0</redelivery-delay>
            <max-size-bytes>-1</max-size-bytes>       
            <max-size-messages>-1</max-size-messages>
            <page-size-bytes>10M</page-size-bytes>
            <max-read-page-messages>1000</max-read-page-messages>
            <max-read-page-bytes>1M</max-read-page-bytes>
            <message-counter-history-day-limit>10</message-counter-history-day-limit>
            <address-full-policy>PAGE</address-full-policy>
            <auto-create-queues>true</auto-create-queues>
            <auto-create-addresses>false</auto-create-addresses>
            <auto-delete-queues>false</auto-delete-queues>
            <auto-delete-addresses>false</auto-delete-addresses>
            <redistribution-delay>0</redistribution-delay>
         </address-setting>

      </address-settings>

      <addresses>
         <address name = "DLQ">
            <anycast>
               <queue name = "DLQ" />
            </anycast>
         </address>
         <address name = "ExpiryQueue">
            <anycast>
               <queue name = "ExpiryQueue" />
            </anycast>
         </address>
         <address name = "test.TestQueue">
            <anycast>
               <queue name = "test.TestQueue" />
            </anycast>
         </address>
      </addresses>
   </core>
</configuration>

узел2 (брокер_1167):

<?xml version='1.0'?>

<configuration xmlns = "urn:activemq"
               xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
               xmlns:xi = "http://www.w3.org/2001/XInclude"
               xsi:schemaLocation = "urn:activemq /schema/artemis-configuration.xsd">

   <core xmlns = "urn:activemq:core" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation = "urn:activemq:core ">

      <name>broker_1167</name>

      <persistence-enabled>true</persistence-enabled>

      <!-- .... skip some configs ... -->

      <connectors>
         <!-- Connector used to be announced through cluster connections and notifications -->
         <connector name = "cluster-connect">tcp://192.168.11.67:61616</connector>
      </connectors>

      <disk-scan-period>5000</disk-scan-period>
      <max-disk-usage>90</max-disk-usage>
      <critical-analyzer>true</critical-analyzer>
      <critical-analyzer-timeout>120000</critical-analyzer-timeout>
      <critical-analyzer-check-period>60000</critical-analyzer-check-period>
      <critical-analyzer-policy>HALT</critical-analyzer-policy>
      <page-sync-timeout>600000</page-sync-timeout>
      <global-max-messages>-1</global-max-messages>

      <acceptors>
         <acceptor name = "artemis">tcp://192.168.11.67:61616?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;amqpMinLargeMessageSize=102400;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;amqpDuplicateDetection=true;supportAdvisory=false;suppressInternalManagementObjects=false</acceptor>

         <!-- AMQP Acceptor.  Listens on default AMQP port for AMQP traffic.-->
         <acceptor name = "amqp">tcp://192.168.11.67:5672?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=AMQP;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;amqpMinLargeMessageSize=102400;amqpDuplicateDetection=true</acceptor>
      </acceptors>

      <cluster-user>alt_cluster</cluster-user>
      <cluster-password>alt_cluster</cluster-password>

      <broadcast-groups>
         <broadcast-group name = "bg-group1">
            <group-address>231.7.7.6</group-address>
            <group-port>9876</group-port>
            <broadcast-period>5000</broadcast-period>
            <connector-ref>cluster-connect</connector-ref>
         </broadcast-group>
      </broadcast-groups>

      <discovery-groups>
         <discovery-group name = "dg-group1">
            <group-address>231.7.7.6</group-address>
            <group-port>9876</group-port>
            <refresh-timeout>10000</refresh-timeout>
         </discovery-group>
      </discovery-groups>

      <cluster-connections>
         <cluster-connection name = "my-cluster">
            <address>test.TestQueue</address>
            <connector-ref>cluster-connect</connector-ref>
            <message-load-balancing>ON_DEMAND</message-load-balancing>
            <max-hops>0</max-hops>
            <discovery-group-ref discovery-group-name = "dg-group1"/>
         </cluster-connection>
      </cluster-connections>


      <security-settings>
         <security-setting match = "#">
            <permission type = "createNonDurableQueue" roles = "amq"/>
            <permission type = "deleteNonDurableQueue" roles = "amq"/>
            <permission type = "createDurableQueue" roles = "amq"/>
            <permission type = "deleteDurableQueue" roles = "amq"/>
            <permission type = "createAddress" roles = "amq"/>
            <permission type = "deleteAddress" roles = "amq"/>
            <permission type = "consume" roles = "amq"/>
            <permission type = "browse" roles = "amq"/>
            <permission type = "send" roles = "amq"/>
            <!-- we need this otherwise ./artemis data imp wouldn't work -->
            <permission type = "manage" roles = "amq"/>
         </security-setting>

         <security-setting match = "ActiveMQ.Advisory.#">
            <permission type = "createNonDurableQueue" roles = "amq,topicadmin,mdmsusers,tpcusers,bdusers,nondurableusers"/>
            <permission type = "deleteNonDurableQueue" roles = "amq,topicadmin,mdmsusers,tpcusers,bdusers,nondurableusers"/>
            <permission type = "createDurableQueue" roles = "amq,topicadmin,mdmsusers,tpcusers,bdusers"/>
            <permission type = "deleteDurableQueue" roles = "amq,topicadmin,mdmsusers,tpcusers,bdusers"/>
            <permission type = "createAddress" roles = "amq,topicadmin,mdmsusers,tpcusers"/>
            <permission type = "deleteAddress" roles = "amq,topicadmin,mdmsusers,tpcusers"/>
            <permission type = "consume" roles = "amq,topicadmin,mdmsusers,tpcusers,bdusers,nondurableusers"/>
            <permission type = "browse"  roles = "amq,topicadmin,mdmsusers,tpcusers,bdusers,nondurableusers"/>
            <permission type = "send"    roles = "amq,topicadmin,mdmsusers,tpcusers"/>
            <!-- we need this otherwise ./artemis data imp wouldn't work -->
            <permission type = "manage" roles = "amq"/>
         </security-setting>


         <security-setting match = "test.TestQueue">
            <permission type = "createNonDurableQueue" roles = "amq,topicadmin"/>
            <permission type = "deleteNonDurableQueue" roles = "amq,topicadmin"/>
            <permission type = "createDurableQueue" roles = "amq,topicadmin"/>
            <permission type = "deleteDurableQueue" roles = "amq,topicadmin"/>
            <permission type = "createAddress" roles = "amq"/>
            <permission type = "deleteAddress" roles = "amq"/>
            <permission type = "consume" roles = "amq,topicadmin"/>
            <permission type = "browse" roles = "amq,topicadmin"/>
            <permission type = "send" roles = "amq,topicadmin"/>
            <!-- we need this otherwise ./artemis data imp wouldn't work -->
            <permission type = "manage" roles = "amq"/>
         </security-setting>
      </security-settings>

      <address-settings>
         <!-- if you define auto-create on certain queues, management has to be auto-create -->
         <address-setting match = "activemq.management#">
            <dead-letter-address>DLQ</dead-letter-address>
            <expiry-address>ExpiryQueue</expiry-address>
            <redelivery-delay>0</redelivery-delay>
            <!-- with -1 only the global-max-size is in use for limiting -->
            <max-size-bytes>-1</max-size-bytes>
            <message-counter-history-day-limit>10</message-counter-history-day-limit>
            <address-full-policy>PAGE</address-full-policy>
            <auto-create-queues>true</auto-create-queues>
            <auto-create-addresses>true</auto-create-addresses>
         </address-setting>
         <!--default for catch all-->
         <address-setting match = "#">
            <dead-letter-address>DLQ</dead-letter-address>
            <expiry-address>ExpiryQueue</expiry-address>
            <redelivery-delay>0</redelivery-delay>
            <max-size-bytes>-1</max-size-bytes>
            <max-size-messages>-1</max-size-messages>
            <page-size-bytes>10M</page-size-bytes>

            <max-read-page-messages>1000</max-read-page-messages>
            <max-read-page-bytes>1M</max-read-page-bytes>
            <message-counter-history-day-limit>10</message-counter-history-day-limit>
            <address-full-policy>PAGE</address-full-policy>
            <auto-create-queues>false</auto-create-queues>
            <auto-create-addresses>false</auto-create-addresses>
            <auto-delete-queues>false</auto-delete-queues>
            <auto-delete-addresses>false</auto-delete-addresses>
            <redistribution-delay>0</redistribution-delay>
         </address-setting>

         <address-setting match = "test.TestQueue">
            <redelivery-delay>0</redelivery-delay>
            <max-size-bytes>-1</max-size-bytes>

            <max-size-messages>-1</max-size-messages>
            <page-size-bytes>10M</page-size-bytes>
            <max-read-page-messages>1000</max-read-page-messages>
            <max-read-page-bytes>1M</max-read-page-bytes>
            <message-counter-history-day-limit>10</message-counter-history-day-limit>
            <address-full-policy>PAGE</address-full-policy>
            <auto-create-queues>true</auto-create-queues>
            <auto-create-addresses>false</auto-create-addresses>
            <auto-delete-queues>false</auto-delete-queues>
            <auto-delete-addresses>false</auto-delete-addresses>
            <redistribution-delay>0</redistribution-delay>
         </address-setting>
      </address-settings>

      <addresses>
         <address name = "DLQ">
            <anycast>
               <queue name = "DLQ" />
            </anycast>
         </address>
         <address name = "ExpiryQueue">
            <anycast>
               <queue name = "ExpiryQueue" />
            </anycast>
         </address>
         <address name = "test.TestQueue">
            <anycast>
               <queue name = "test.TestQueue" />
            </anycast>
         </address>
      </addresses>
   </core>
</configuration>

На диаграмме брокера каждого узла я вижу подключение двух брокеров.

Теперь у меня есть подписка потребителя test.TestQueue на broker_1067, а другой производитель отправляет сообщения test.TestQueue на broker_1167.

Однако мой потребитель ничего не может получить. В веб-консоли брокера_1067 атрибуты «Количество сообщений» и «Добавленное сообщение» очереди test.TestQueue равны нулю.

Если я создаю сообщения для broker_1067, то мой потребитель, подключающийся к broker_1067, может получать сообщения. Такая же ситуация с broker_1167.

Вот мой код потребителя и код производителя, как показано ниже.

Потребитель:

public static final String amqUrl = "amqp://192.168.10.67:5672";
public static final String queueName = "test.TestQueue";
public static final String amqUser   = "FET";
public static final String amqPasswd = "1QAZ2WSX";
public static final String clientId  = "Tester-1";
public static final boolean useTransactionMode = false;
public static final int WAIT_SECONDS = 1200; // seconds
private ConnectionFactory connectionFactory;
private Connection amqConnection;
private Session amqSession;
private Topic subscribedTopic, producedTopic;
private MessageConsumer messageSubscriber;
private MessageProducer messageProducer;
private Queue queue;

System.out.printf("Connect to %s\n ", amqUrl);
connectionFactory = new JmsConnectionFactory(amqUser, amqPasswd, amqUrl);
amqConnection     =  connectionFactory.createConnection();
amqConnection.setClientID(clientId);
amqConnection.start();

amqSession = amqConnection.createSession(useTransactionMode, Session.AUTO_ACKNOWLEDGE);
System.out.printf("Subscribe QUEUE: [%s]\n", queueName);
queue      = amqSession.createQueue(queueName);
messageSubscriber = amqSession.createConsumer(queue);

System.out.printf("Wait message coming in from [%s] for %d seconds\n", queueName, WAIT_SECONDS);
Message queueMessage = messageSubscriber.receive(WAIT_SECONDS*1000); // Wait some time
System.out.println("Timeout!");
if (queueMessage == null) {
    System.out.println("No message comes in!");
} else {
    System.out.printf(String.format("topic: [%s] Some message comes in....", queueName));
    TextMessage textMessage = (TextMessage) queueMessage;
    System.out.printf("Message content is: %s\n", textMessage.getText());
}
messageSubscriber.close();
amqSession.close();
amqConnection.stop();
amqConnection.close();

Код производителя:

public static final String amqUrl = "amqp://192.168.10.67:5672";
public static final String queueName = "test.TestQueue";
public static final String amqUser   = "FET";
public static final String amqPasswd = "1QAZ2WSX";
public static final String clientId  = "Tester-2";
public static final boolean useTransactionMode = false;
public static final int WAIT_SECONDS = 1200; // seconds
private ConnectionFactory connectionFactory;
private Connection amqConnection;
private Session amqSession;
private Topic subscribedTopic, producedTopic;
private MessageConsumer messageSubscriber;
private MessageProducer messageProducer;
private Queue queue;

System.out.printf("Connect to %s\n ", amqUrl);
connectionFactory = new JmsConnectionFactory(amqUser, amqPasswd, amqUrl);
amqConnection     =  connectionFactory.createConnection();
amqConnection.setClientID(clientId);
amqConnection.start();

amqSession = amqConnection.createSession(useTransactionMode, Session.AUTO_ACKNOWLEDGE);
System.out.println("Be a producer for putting message to queue:" + queueName);
queue      = amqSession.createQueue(queueName);
messageProducer = amqSession.createProducer(queue);

TextMessage textMessage = amqSession.createTextMessage();
String text = "AAAAAAAAAAAAAAAAAAAAAA";
textMessage.setText(text);
System.out.println("Before sending text message :["+ text+"]");
messageProducer.send(textMessage);
System.out.println("After sending text message");

messageProducer.close();
amqSession.close();
amqConnection.stop();
amqConnection.close();

Журналы запуска потребителя:

Connect to amqp://192.168.10.67:5672
Subscribe QUEUE: [test.TestQueue]
Wait message coming in from [test.TestQueue] for 1200 seconds

Производитель запускает журнал:

Connect to amqp://192.168.11.67:5672
Be a producer for putting message to queue:test.TestQueue
Before sending text message :[AAAAAAAAAAAAAAAAAAAAAA]
After sending text message

Когда запускаются два MQ, их журналы выглядят так, как показано ниже.

broler_1067 запускается первым:

2022-09-16 22:35:24,773 INFO  [org.apache.activemq.artemis] AMQ241001: Embedded web server started at http://0.0.0.0:8161
2022-09-16 22:35:24,775 INFO  [org.apache.activemq.artemis] AMQ241002: Artemis Jolokia REST API available at http://0.0.0.0:8161/console/jolokia
2022-09-16 22:35:24,776 INFO  [org.apache.activemq.artemis] AMQ241004: Artemis Console available at http://0.0.0.0:8161/console
2022-09-16 22:35:24,909 INFO  [io.hawt.web.auth.LoginServlet] Hawtio login is using 1800 sec. HttpSession timeout
2022-09-16 22:35:27,835 INFO  [io.hawt.web.auth.keycloak.KeycloakServlet] Keycloak integration is disabled
2022-09-16 22:35:37,613 WARN  [org.apache.activemq.artemis.core.server] AMQ224091: Bridge ClusterConnectionBridge@27f20c06 [name=$.artemis.internal.sf.my-cluster.feecdc06-35bd-11ed-a7c2-00505694586c, queue=QueueImpl[name=$.artemis.internal.sf.my-cluster.feecdc06-35bd-11ed-a7c2-00505694586c, postOffice=PostOfficeImpl [server=ActiveMQServerImpl::name=broker_1067], temp=false]@55882f76 targetConnector=ServerLocatorImpl (identity=(Cluster-connection-bridge::ClusterConnectionBridge@27f20c06 [name=$.artemis.internal.sf.my-cluster.feecdc06-35bd-11ed-a7c2-00505694586c, queue=QueueImpl[name=$.artemis.internal.sf.my-cluster.feecdc06-35bd-11ed-a7c2-00505694586c, postOffice=PostOfficeImpl [server=ActiveMQServerImpl::name=broker_1067], temp=false]@55882f76 targetConnector=ServerLocatorImpl [initialConnectors=[TransportConfiguration(name=artemis, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory) ?port=61616&host=192-168-11-67], discoveryGroupConfiguration=null]]::ClusterConnectionImpl@1418550995[nodeUUID=04384127-35bd-11ed-868f-00505694e058, connector=TransportConfiguration(name=artemis, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory) ?port=61616&host=192-168-10-67, address=, server=ActiveMQServerImpl::name=broker_1067])) [initialConnectors=[TransportConfiguration(name=artemis, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory) ?port=61616&host=192-168-11-67], discoveryGroupConfiguration=null]] is unable to connect to destination. Retrying
2022-09-16 22:35:38,390 INFO  [org.apache.activemq.artemis.core.server] AMQ221027: Bridge ClusterConnectionBridge@27f20c06 [name=$.artemis.internal.sf.my-cluster.feecdc06-35bd-11ed-a7c2-00505694586c, queue=QueueImpl[name=$.artemis.internal.sf.my-cluster.feecdc06-35bd-11ed-a7c2-00505694586c, postOffice=PostOfficeImpl [server=ActiveMQServerImpl::name=broker_1067], temp=false]@55882f76 targetConnector=ServerLocatorImpl (identity=(Cluster-connection-bridge::ClusterConnectionBridge@27f20c06 [name=$.artemis.internal.sf.my-cluster.feecdc06-35bd-11ed-a7c2-00505694586c, queue=QueueImpl[name=$.artemis.internal.sf.my-cluster.feecdc06-35bd-11ed-a7c2-00505694586c, postOffice=PostOfficeImpl [server=ActiveMQServerImpl::name=broker_1067], temp=false]@55882f76 targetConnector=ServerLocatorImpl [initialConnectors=[TransportConfiguration(name=artemis, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory) ?port=61616&host=192-168-11-67], discoveryGroupConfiguration=null]]::ClusterConnectionImpl@1418550995[nodeUUID=04384127-35bd-11ed-868f-00505694e058, connector=TransportConfiguration(name=artemis, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory) ?port=61616&host=192-168-10-67, address=, server=ActiveMQServerImpl::name=broker_1067])) [initialConnectors=[TransportConfiguration(name=artemis, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory) ?port=61616&host=192-168-11-67], discoveryGroupConfiguration=null]] is connected

брокер_1167 (после успешного запуска брокера_1167 запускается брокер_1167):

2022-09-16 22:35:39,459 INFO  [io.hawt.web.servlets.JolokiaConfiguredAgentServlet] Jolokia overridden property: [key=policyLocation, value=file:/opt/250_broker_1167/etc/jolokia-access.xml]
2022-09-16 22:35:39,538 INFO  [org.apache.activemq.artemis] AMQ241001: Embedded web server started at http://0.0.0.0:8161
2022-09-16 22:35:39,540 INFO  [org.apache.activemq.artemis] AMQ241002: Artemis Jolokia REST API available at http://0.0.0.0:8161/console/jolokia
2022-09-16 22:35:39,540 INFO  [org.apache.activemq.artemis] AMQ241004: Artemis Console available at http://0.0.0.0:8161/console
2022-09-16 22:35:39,613 INFO  [org.apache.activemq.artemis.core.server] AMQ221027: Bridge ClusterConnectionBridge@5b2f8d02 [name=$.artemis.internal.sf.my-cluster.04384127-35bd-11ed-868f-00505694e058, queue=QueueImpl[name=$.artemis.internal.sf.my-cluster.04384127-35bd-11ed-868f-00505694e058, postOffice=PostOfficeImpl [server=ActiveMQServerImpl::name=broker_1167], temp=false]@3218f4c5 targetConnector=ServerLocatorImpl (identity=(Cluster-connection-bridge::ClusterConnectionBridge@5b2f8d02 [name=$.artemis.internal.sf.my-cluster.04384127-35bd-11ed-868f-00505694e058, queue=QueueImpl[name=$.artemis.internal.sf.my-cluster.04384127-35bd-11ed-868f-00505694e058, postOffice=PostOfficeImpl [server=ActiveMQServerImpl::name=broker_1167], temp=false]@3218f4c5 targetConnector=ServerLocatorImpl [initialConnectors=[TransportConfiguration(name=artemis, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory) ?port=61616&host=192-168-10-67], discoveryGroupConfiguration=null]]::ClusterConnectionImpl@1954355506[nodeUUID=feecdc06-35bd-11ed-a7c2-00505694586c, connector=TransportConfiguration(name=artemis, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory) ?port=61616&host=192-168-11-67, address=, server=ActiveMQServerImpl::name=broker_1167])) [initialConnectors=[TransportConfiguration(name=artemis, factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory) ?port=61616&host=192-168-10-67], discoveryGroupConfiguration=null]] is connected
2022-09-16 22:35:43,153 INFO  [io.hawt.web.auth.LoginServlet] Hawtio login is using 1800 sec. HttpSession timeout
2022-09-16 22:35:45,823 INFO  [io.hawt.web.auth.keycloak.KeycloakServlet] Keycloak integration is disabled

Какую конфигурацию я пропустил?

@JustinBertram Я публикую свой код и регистрируюсь, как показано ниже.

wureka 17.09.2022 00:44

Вы сначала управляете производителем или потребителем?

Justin Bertram 17.09.2022 05:05

Нет, сначала я запустил потребитель. Ну, в конце концов я понял, что <max-hops>0</max-hops> следует установить на 1, и тогда мой потребитель сможет получить сообщение. В любом случае, спасибо.

wureka 18.09.2022 01:05
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
108
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Эта проблема вызвана тем, что max-hops равен 0. Значение по умолчанию для этого параметра равно 1, что означает, что сообщения балансируются только по нагрузке на другие серверы Apache ActiveMQ Artemis, которые напрямую подключены к этому серверу, см. документацию для получения дополнительной информации. .

Другие вопросы по теме