How is Zeebe Cluster highly available?

Hi, I am planning to deploy 3 nodes of Brokers,
Reference URL: https://github.com/zeebe-io/zeebe-docker-compose/blob/master/cluster/docker-compose.yml

I can only access 26,500 ports, then if node0 is down, is it not possible to access the other two nodes?

My hope is that node1/node2 is changed from Follower to Leader. I am still having no problem accessing 26500.

You need to put your cluster behind a standalone gateway instance.

1 Like

@jwulf
If I put my cluster behind a standalone gateway instance, is there a single point problem with the gateway?

You can have multiple Gateways for high-availability. So a typical setup for high-availability is: 2 Gateways in front of your 3 brokers.

Unfortunately docs about standalone gateways are still missing, but you can follow the links in this issue to get a better idea: https://github.com/zeebe-io/zeebe/issues/2002

1 Like

The clients take only a single contact point, so you have to put something in the infrastructure layer to deal with fail-over, no?

I think you are right (haven’t checked for all language clients though, theoretically they could handle that). This is as far as I know what we do in Camunda Cloud

The clients used to take a list of contact points, like Kafka; but that was removed some time ago for a single contact point.

Hi @jwulf
Would you describe the role of the gateway in a cluster ?
I start up three zeebe brokers but no gateway and set a SLB IP for these three points. Is it wrong usage ?
When I start up a zeebe broker I execute the command “nohup ./broker &”, is that currect ?

The broker includes an embedded gateway.

Using a load-balancer will work. There are considerations when load-balancing persistent HTTP/2 connections, see here: https://grpc.io/blog/loadbalancing/

1 Like