Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

what happens after a broker is down in a cluster?

Tags:

apache-kafka

Suppose a broker is down for long time, now what happens to the followers and leaders that this broker was containing?

  • if broker was containing a leader and one of in-sync replica is chosen as leader, does it create another in-sync replica(in case we have specific replication factor)?

  • if broker was containing a follower, does it create another follower elsewhere in cluster?

  • now suppose broker awakens after long time, now do leaders and followers are restored as it left when it went down?

like image 342
amrit sharma Avatar asked Nov 06 '17 07:11

amrit sharma


People also ask

What happens if Kafka cluster fails?

This allows Kafka to automatically failover to these replicas when a server in the cluster fails so that messages remain available in the presence of failures. Replication in Kafka happens at the partition granularity where the partition's write-ahead log is replicated in order to n servers.

How many brokers are recommended in the Kafka cluster?

A single Kafka cluster is cheaper Even a lightly used Kafka cluster deployed for production purposes requires three to six brokers and three to five ZooKeeper nodes. The components should be spread across multiple availability zones for redundancy.

Which actions are undertaken by the controller in case it detects the failure of a broker which was leader for some partitions )? Pick three?

The controller detects broker failures and elects a new leader for each affected partition. Each leadership change is communicated by the controller to each affected broker. The communication between the controller and the broker is done through direct RPC, instead of via Zookeeper.

What happens when a Kafka consumer dies?

But, what happens if one consumer dies?! Since the producer is evenly distributing data among the partitions, if one consumer dies, the processing of the messages becomes incomplete, as a whole partition goes unprocessed.

What happens when a broker is down?

What happens when a broker is down, depends on your configuration. In case you’re using the synchronous producer (where the ordering of messages is important), you need to implement your own retries. The synchronous producer doesn’t handle this scenario where one broker is down.

What happens when a Kafka broker is down?

Now we will set an alert, so whenever any of Kafka broker is down, we’ll receive a notification. For Kafka, a single broker is just a cluster of size one. Usually we don’t create a single broker. If a single broker is down, our Kafka server will also stop and we won’t be able to generate any matrices.

What is broker ID in cluster?

The broker.id property is the unique and permanent name of each node in the cluster. We have to override the port and log directory only because we are running these all on the same machine and we want to keep the brokers from all trying to register on the same port or overwrite each other’s data.

What happens when a broker is offline?

During that time our producer was not able to produce messages (at least to some partitions). If the offline broker was a leader, a new leader is elected from the replicas that are in-sync. What happens when a broker is down, depends on your configuration.


1 Answers

What happens when a broker is down depends on your configuration. It mostly depends on these configuration settings:

  • min.insync.replicas
  • default.replication.factor
  • unclean.leader.election.enable

Kafka does not create a new replica when a broker goes down.

If the offline broker was a leader, a new leader is elected from the replicas that are in-sync. If no replicas are in-sync it will only elect an out of sync replica if unclean.leader.election.enable is true, otherwise the partition will be offline.

If the offline broker was a follower, it will be marked a out of sync by the leader.

When restarting the broker, it will try to get back in sync. Once done, whether it stays a follower or becomes the leader depends if it is the prefered replica.

Finally if you know a broker will be offline for a long time and still require a replica, you can use the reassignment tool kafka-reassign-partitions.sh to move partitions to online brokers.

like image 91
Mickael Maison Avatar answered Nov 03 '22 22:11

Mickael Maison