ControllerState Contract
ControllerState
is the contract of the states that KafkaController can be in.
Every ControllerEvent
has an associated state. When a ControllerEvent
is processed, it triggers a state transition to the requested state. These state transitions are used for ControllerEventManager and the owning KafkaController.
ControllerState
has the rateAndTimeMetricName (except Idle state). ControllerContext uses them to build a registry of KafkaTimers
for every ControllerState
. The timer metric name pattern is kafka.controller:type=ControllerStats,name=.
Method | Description |
---|---|
|
Internal identifier |
|
|
|
Controls whether the Default: |
ControllerState | Description |
---|---|
|
|
|
rateAndTimeMetricName is LeaderElectionRateAndTimeMs ControllerEvents: BrokerChange, BrokerModifications |
|
|
|
|
|
|
|
The initial state of ControllerEventManager (and indirectly KafkaController) |
|
ControllerEvents: IsrChangeNotification |
|
|
|
|
|
ControllerEvents: PreferredReplicaLeaderElection |
|
ControllerEvents: PartitionReassignment, PartitionReassignmentIsrChange |
|
|
|
|
|
|
|
Note
|
ControllerState is a Scala sealed abstract class and so all the possible controller states are in a single compilation unit (i.e. a file).
|