Hi,

Looking to host an Artemis cluster in Kubernetes and am not sure how to
achieve full local resilience.  (Clusters for DR and remote distribution
will be added later using the mirroring feature introduced with v2.16).

It is configured as 3 active cluster members using static discovery because
the particular cloud provider does not officially support UDP on its
managed Kubernetes service network.

There are no backup brokers (active/passive) because the stateful set takes
care of restarting failed pods immediately.

Each broker has its own networked storage so is resilient in terms of local
state.

Message redistribution is ON_DEMAND. Publishing is to topics and consuming
is from durable topic subscription queues.

Publishers and consumers are connecting round-robin with client IP
affinity/stickiness.

What I'm concerned about is the possibility of journal corruption on one
broker. Publishers and consumers will failover to either of the remaining 2
brokers which is fine but some data could be lost permanently as follows.

Hypothetically, consider that Publisher 1 is publishing to Broker 1 and
Publisher 2 is publishing to Broker 3. Consumer 1 is consuming from Broker
2 and Consumer 2 is consuming from Broker 1.   There are more consumers and
publishers but using 2 of each just to illustrate.

Publisher 1 -> Broker 1 -> Broker 2 -> Consumer 1
Publisher 2 -> Broker 3 -> Broker 2 -> Consumer 1
Publisher 1 -> Broker 1 -> Consumer 2
Publisher 2 -> Broker 3 -> Broker 1 -> Consumer 2

This all works very well with full data integrity and good performance :)

However if say Broker 1's journal got corrupted and it went down
permanently as a result, any data from Publisher 1 which hadn't yet been
distributed to Consumer 1 (via Broker 2) or *particularly* Consumer 2
(directly) would be lost (unless the journal could be recovered).

Is there some straightforward configuration to avoid or reduce this
possibility? Perhaps a 4 broker cluster could have affinity for publishers
on 2 brokers and affinity for consumers on the other 2, somehow?


Thanks for any advice you can offer.


Dave Martin.

Reply via email to