У меня есть кластер, состоящий из двух узлов. Два 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
Какую конфигурацию я пропустил?
Вы сначала управляете производителем или потребителем?
Нет, сначала я запустил потребитель. Ну, в конце концов я понял, что <max-hops>0</max-hops>
следует установить на 1, и тогда мой потребитель сможет получить сообщение. В любом случае, спасибо.
Эта проблема вызвана тем, что max-hops равен 0. Значение по умолчанию для этого параметра равно 1, что означает, что сообщения балансируются только по нагрузке на другие серверы Apache ActiveMQ Artemis, которые напрямую подключены к этому серверу, см. документацию для получения дополнительной информации. .
@JustinBertram Я публикую свой код и регистрируюсь, как показано ниже.