You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Magnus Andersson <ma...@hotmail.com> on 2020/12/01 09:45:53 UTC

durable subscribers in artemis cluster

Hello,
We are running Artemis in a clustered setup with three nodes. We have a load balancer in front of the nodes. 

We want a durable subscriber to be unaware of which node it connects to. So if the durable subscriber loose connection to instance nodeA, it can connect to nodeB (which it hasn’t been connected to before) and get all messages published meanwhile it was disconnected.

How can we achive this? We have tried with predefined adresses and queues, message-load-balancing set to STRICT. But then the messages are round-robined between the nodes which the subscriber has been connected to. And the subscriber need to connect to all of these nodes to get all messages published meanwhile offline.

For previous versions of apache active mq, i see there is the concept of virtual destinations and network of brokers. But I do not find this for Artemis. 

Thanks for input! 

Brgds
Magnus Andersson 

Re: durable subscribers in artemis cluster

Posted by Justin Bertram <jb...@apache.org>.
This use-case requires message *redistribution* [1] which currently
requires using the ON_DEMAND message load-balancing policy as described in
the documentation. Since you're using STRICT you won't get message
redistribution.

Note, I sent a PR [2] over a year ago to support redistribution with both
STRICT and OFF message load-balancing policies, but it got bogged down in
disagreements about naming. If you really want to use STRICT message load
balancing with redistribution then please comment on that PR and let me
know.


Justin

[1]
http://activemq.apache.org/components/artemis/documentation/latest/clusters.html#message-redistribution
[2] https://github.com/apache/activemq-artemis/pull/2893

On Tue, Dec 1, 2020 at 8:37 AM Magnus Andersson <ma...@hotmail.com>
wrote:

> Hello,
> We are running Artemis in a clustered setup with three nodes. We have a
> load balancer in front of the nodes.
>
> We want a durable subscriber to be unaware of which node it connects to.
> So if the durable subscriber loose connection to instance nodeA, it can
> connect to nodeB (which it hasn’t been connected to before) and get all
> messages published meanwhile it was disconnected.
>
> How can we achive this? We have tried with predefined adresses and queues,
> message-load-balancing set to STRICT. But then the messages are
> round-robined between the nodes which the subscriber has been connected to.
> And the subscriber need to connect to all of these nodes to get all
> messages published meanwhile offline.
>
> For previous versions of apache active mq, i see there is the concept of
> virtual destinations and network of brokers. But I do not find this for
> Artemis.
>
> Thanks for input!
>
> Brgds
> Magnus Andersson
>