Jack BeNimble
Jack BeNimble

Reputation: 36723

ActiveMQ Artemis - is a master/slave/slave three-node configuration possible?

For an ActiveMQ Artemis HA solution, I'm thinking that instead of using a using a primary/secondary configuration with a Zookeeper monitoring node, perhaps as master/slave/slave configuration would be better. The reason is that, as pointed out in this answer, having a single Zookeeper node is an architectural weakness. The master-slave-slave approach would at least probably have at least one node running at any given time.

Also, I'm wondering if it might be better to ask these question over the mailing list or the slack channel? Any preference there?

Upvotes: 2

Views: 646

Answers (1)

Justin Bertram
Justin Bertram

Reputation: 35207

Using a primary/backup/backup triplet is possible, but it provides no mitigation against split brain since only primary nodes participate in quorum voting. Therefore, the architectural weakness in this configuration is significantly worse than just have a single ZooKeeper node because with a single ZooKeeper node at least you have a chance of mitigating split brain whereas otherwise you don't.

Also, fail-back only works for a primary/backup pair. It doesn't work for a primary/backup/backup triplet. This is because a backup server is owned by only one primary server. This means that when the 3 broker instances are started there will be 1 primary/backup pair and a "left-over" backup which will be in a kind of idle state waiting to attach to a primary broker without a backup. Then if the primary broker fails the primary broker's backup will take over and become primary and the other backup will now become the backup of the server which just became primary. Once the broker instance which failed is restarted it will attempt to register itself as a backup of the now-primary broker and initiate fail-back. However, since the now-primary broker already has a backup it will reject the registration message from the original primary because it already has a backup, and therefore fail-back will not occur.

Upvotes: 2

Related Questions