...
When the admin calls the alterQuorum
, underlying the thread will first send a FindQuorumRequest
to find the stable leader. If that call times out or the group is in the election, the call would fail and inform user to retry. Once the leader is found, AdminClient
will send AlterQuorumRequest
to it. If the returned error is retriable like NOT_QUORUM_LEADER, the tool will perform a rediscovery of the quorum leader. For fatal errors such as authorization errors, the call would fail and inform user the result.
Tooling Support
We will add a new utility called kafka-quorum.sh to describe and alter quorum state. As usual, this tool will require --bootstrap-server
to be provided. We will support the following options:
...
Describing Current Status
There will be two options available with --describe:
...
Code Block |
---|
> bin/kafka-quorum.sh --describe LeaderId: 0 LeaderEpoch: 15 HighWatermark: 234130 MaxFollowerLag: 34 MaxFollowerLagTimeMs: 15 CurrentVoters: [0, 1, 2] TargetVoters: [0, 3, 4] > bin/kafka-quorum.sh --describe replication ReplicaId LogEndOffset Lag LagTimeMs Status IsReassignTarget 0 234134 0 0 Leader Yes 1 234130 4 10 Follower No 2 234100 34 15 Follower No 3 234124 10 12 Observer Yes 4 234130 4 15 Observer Yes |
...
Altering Voters
Initially, the only purpose of this API is to perform reassignments. In the future, there may be additional uses. Below is an example usage:
...