[
https://issues.apache.org/jira/browse/ARTEMIS-3321?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Justin Bertram reassigned ARTEMIS-3321:
---------------------------------------
Assignee: (was: Clebert Suconic)
> Message redistribution does not happen when an Artemis node down
> ----------------------------------------------------------------
>
> Key: ARTEMIS-3321
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3321
> Project: ActiveMQ Artemis
> Issue Type: Improvement
> Components: ActiveMQ-Artemis-Native
> Affects Versions: 2.17.0
> Environment: kubernetes
> Reporter: Nhut Thai Le
> Priority: Major
>
> In a cluster of 2 or more Artemis brokers without HA, if one node went down
> (let's call A), the client (consumer) will reconnect to to another node (B)
> which trigger a notification to other nodes in the cluster to redistribute
> messages to the connected node (B). However, since the node A is not revived
> yet, it does not receive this notification and thus once it come back to life
> (either automatically or manually), it will not redistribute its messages to
> node B.
> Here is the config that i was using:
> {code:java}
> <?xml version="1.0"?>
> <configuration xmlns="urn:activemq"
> xmlns:xi="http://www.w3.org/2001/XInclude"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="urn:activemq /schema/artemis-configuration.xsd">
> <core xmlns="urn:activemq:core" xsi:schemaLocation="urn:activemq:core ">
> <name>activemq-artemis-master-0</name>
> <persistence-enabled>true</persistence-enabled>
> <journal-type>ASYNCIO</journal-type>
> <paging-directory>data/paging</paging-directory>
> <bindings-directory>data/bindings</bindings-directory>
> <journal-directory>data/journal</journal-directory>
> <large-messages-directory>data/large-messages</large-messages-directory>
> <journal-datasync>true</journal-datasync>
> <journal-min-files>2</journal-min-files>
> <journal-pool-files>10</journal-pool-files>
> <journal-device-block-size>4096</journal-device-block-size>
> <journal-file-size>10M</journal-file-size>
> <journal-buffer-timeout>100000</journal-buffer-timeout>
> <journal-max-io>4096</journal-max-io>
> <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>2244000</page-sync-timeout>
> <acceptors>
> <acceptor
> name="artemis">tcp://0.0.0.0:61616?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;amqpMinLargeMessageSize=102400;protocols=CORE,AMQP,STOMP,HORNETQ,MQTT,OPENWIRE;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;amqpDuplicateDetection=true</acceptor>
> <acceptor
> name="amqp">tcp://0.0.0.0:5672?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=AMQP;useEpoll=true;amqpCredits=1000;amqpLowCredits=300;amqpMinLargeMessageSize=102400;amqpDuplicateDetection=true</acceptor>
> <acceptor
> name="stomp">tcp://0.0.0.0:61613?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=STOMP;useEpoll=true</acceptor>
> <acceptor
> name="hornetq">tcp://0.0.0.0:5445?anycastPrefix=jms.queue.;multicastPrefix=jms.topic.;protocols=HORNETQ,STOMP;useEpoll=true</acceptor>
> <acceptor
> name="mqtt">tcp://0.0.0.0:1883?tcpSendBufferSize=1048576;tcpReceiveBufferSize=1048576;protocols=MQTT;useEpoll=true</acceptor>
> </acceptors>
> <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"/>
> <permission type="manage" roles="amq"/>
> </security-setting>
> </security-settings>
> <cluster-user>ClusterUser</cluster-user>
> <cluster-password>longClusterPassword</cluster-password>
> <connectors>
> <connector
> name="activemq-artemis-master-0">tcp://activemq-artemis-master-0.activemq-artemis-master.ncp-stack-testing.svc.cluster.local:61616</connector>
> <connector
> name="activemq-artemis-master-1">tcp://activemq-artemis-master-1.activemq-artemis-master.ncp-stack-testing.svc.cluster.local:61616</connector>
> </connectors>
> <cluster-connections>
> <cluster-connection name="activemq-artemis">
> <connector-ref>activemq-artemis-master-0</connector-ref>
> <retry-interval>500</retry-interval>
> <retry-interval-multiplier>1.1</retry-interval-multiplier>
> <max-retry-interval>5000</max-retry-interval>
> <initial-connect-attempts>-1</initial-connect-attempts>
> <reconnect-attempts>-1</reconnect-attempts>
> <use-duplicate-detection>true</use-duplicate-detection>
> <message-load-balancing>ON_DEMAND</message-load-balancing>
> <max-hops>1</max-hops>
> <static-connectors>
> <connector-ref>activemq-artemis-master-0</connector-ref>
> <connector-ref>activemq-artemis-master-1</connector-ref>
> </static-connectors>
> </cluster-connection>
> </cluster-connections>
> <address-settings>
> <address-setting match="activemq.management#">
> <dead-letter-address>DLQ</dead-letter-address>
> <expiry-address>ExpiryQueue</expiry-address>
> <redelivery-delay>0</redelivery-delay>
> <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>
> <auto-create-jms-queues>true</auto-create-jms-queues>
> <auto-create-jms-topics>true</auto-create-jms-topics>
> </address-setting>
> <address-setting match="#">
> <dead-letter-address>DLQ</dead-letter-address>
> <expiry-address>ExpiryQueue</expiry-address>
> <redistribution-delay>60000</redistribution-delay>
> <redelivery-delay>0</redelivery-delay>
> <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>
> <auto-create-jms-queues>true</auto-create-jms-queues>
> <auto-create-jms-topics>true</auto-create-jms-topics>
> </address-setting>
> </address-settings>
> <addresses>
> <address name="DLQ">
> <anycast>
> <queue name="DLQ"/>
> </anycast>
> </address>
> <address name="ExpiryQueue">
> <anycast>
> <queue name="ExpiryQueue"/>
> </anycast>
> </address>
> </addresses>
> </core>
> <core xmlns="urn:activemq:core">
> <jmx-management-enabled>true</jmx-management-enabled>
> </core>
> </configuration>
> {code}
> The original question was asked on stackoverflow:
> [kubernetes - ActiveMQ Artemis cluster does not redistribute messages after
> one instance crash - Stack
> Overflow|https://stackoverflow.com/questions/67644488/activemq-artemis-cluster-does-not-redistribute-messages-after-one-instance-crash/67729426?noredirect=1#comment119720624_67729426]
--
This message was sent by Atlassian Jira
(v8.3.4#803005)