Skip to content

ControllerServer

ControllerServer represents the controller in process.roles.

Creating Instance

ControllerServer takes the following to be created:

ControllerServer is created alongside a KafkaRaftServer (for controller in process.roles).

Starting Up

startup(): Unit

startup changes status from SHUTDOWN to STARTING.

startup uses server.max.startup.time.ms for...FIXME

startup prints out the following INFO message to the logs:

Starting controller

startup requests the DynamicBrokerConfig (of the KafkaConfig) to initialize (with no KafkaZkClient as it runs in Zookeeper-less KRaft mode).

startup changes status from STARTING to STARTED.

startup registers new metrics (gauges) in the KafkaMetricsGroup.

Metric Name Description
ClusterId clusterId
yammer-metrics-count
linux-disk-read-bytes (only on Linux)
linux-disk-write-bytes (only on Linux)

startup...FIXME

Note

There is a lot services being registered that seem not necessarily as important at this early stage of the KRaft exploration of mine 😉

startup requests the SharedServer to startForController.

startup...FIXME

startup builds the QuorumController.

startup...FIXME

In the end, startup requests the DynamicBrokerConfig

startup registers this ControllerServer for dynamic config changes (to the KafkaConfig).


startup is used when:

  • KafkaRaftServer is requested to startup

Logging

Enable ALL logging level for kafka.server.ControllerServer logger to see what happens inside.

Add the following line to config/log4j.properties:

log4j.logger.kafka.server.ControllerServer=ALL

Refer to Logging.