You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Stephan Austermühle (Jira)" <ji...@apache.org> on 2020/06/18 13:03:00 UTC

[jira] [Created] (ARTEMIS-2812) Topology aware replication (allow replication for a server not in group)

Stephan Austermühle created ARTEMIS-2812:
--------------------------------------------

             Summary: Topology aware replication (allow replication for a server not in group)
                 Key: ARTEMIS-2812
                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2812
             Project: ActiveMQ Artemis
          Issue Type: New Feature
          Components: ActiveMQ-Artemis-Native
    Affects Versions: 2.13.0
         Environment: __
            Reporter: Stephan Austermühle
            Assignee: Clebert Suconic


When running Artemis on Kubernetes there are only few options to create a cluster with replication that allow dynamic scaling. One option is to have two StatefulSets, one for the primary server, and one for replicas. For production usage, one wants to ensure that topology boundaries are respected, i.e., do not run a live server and its replica within the same Availability Zone or datacenter (or on the same host). This requires propagation of a Kubernetes topology key (e.g., hostname, availability zone) to a Pod (broker instance) and then configure the ha-policy in a way that allows replicas to ask for a server that is _not_ in the named group.

Example:

StatefulSet artemis-primary creates some Pods running primary broker instances. They all set their replication group-name to their availability zone (e.g., "replication-group-datacenter1").

Statefulset artemis-replica creates Pods running replica broker instances. They should find a live server that does _not_ match its own availability zone.

_Summary_: To ensure respected topology boundaries, an option that matches _all but the named group_ should be introduced.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)