Bird
Raised Fist0
Kafkadevops~5 mins

Controller broker in Kafka - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a Controller Broker in Kafka?
The Controller Broker is a special Kafka broker responsible for managing cluster metadata, leader election for partitions, and handling administrative tasks to keep the cluster running smoothly.
Click to reveal answer
intermediate
How does the Controller Broker handle leader election?
The Controller Broker selects a leader for each partition to coordinate reads and writes. If a leader fails, the controller triggers a new leader election to maintain availability.
Click to reveal answer
intermediate
What happens if the Controller Broker fails in a Kafka cluster?
If the Controller Broker fails, Kafka automatically elects a new controller from the remaining brokers to take over the controller duties, ensuring cluster stability.
Click to reveal answer
beginner
Why is the Controller Broker important for Kafka's fault tolerance?
Because it manages leader elections and metadata updates, the Controller Broker ensures that Kafka can quickly recover from broker failures and keep data available and consistent.
Click to reveal answer
intermediate
Which Kafka component elects the Controller Broker?
Kafka uses ZooKeeper (or Kafka's own quorum in newer versions) to elect the Controller Broker among the brokers in the cluster.
Click to reveal answer
What is the main role of the Controller Broker in Kafka?
AMonitor network traffic
BStore all messages permanently
CServe client requests directly
DManage cluster metadata and leader election
What happens when the Controller Broker fails?
AA new Controller Broker is elected automatically
BAll data is lost
CThe cluster stops working
DClients must reconnect manually
Which system helps elect the Controller Broker in Kafka?
AZooKeeper
BKafka Producer
CKafka Consumer
DKafka Connect
Why is leader election important in Kafka?
ATo balance network load
BTo encrypt messages
CTo coordinate partition reads and writes
DTo compress data
Which task is NOT handled by the Controller Broker?
ALeader election for partitions
BServing client read/write requests
CManaging cluster metadata
DHandling administrative tasks
Explain the role of the Controller Broker in Kafka and why it is critical for cluster stability.
Think about what keeps the Kafka cluster organized and running smoothly.
You got /4 concepts.
    Describe what happens in Kafka when the Controller Broker fails and how the system recovers.
    Consider how Kafka avoids downtime when a key broker goes down.
    You got /4 concepts.

      Practice

      (1/5)
      1.

      What is the main role of the controller broker in a Kafka cluster?

      easy
      A. Manage leader election and cluster metadata updates
      B. Store all the messages permanently
      C. Serve as a client to produce messages
      D. Handle consumer group offsets only

      Solution

      1. Step 1: Understand controller broker responsibilities

        The controller broker is responsible for managing cluster-wide tasks such as leader election and metadata updates.
      2. Step 2: Compare other options

        Storing messages, producing messages, and handling consumer offsets are roles of other brokers or clients, not the controller.
      3. Final Answer:

        Manage leader election and cluster metadata updates -> Option A
      4. Quick Check:

        Controller broker = leader election manager [OK]
      Hint: Controller broker manages cluster tasks like leader election [OK]
      Common Mistakes:
      • Confusing controller with brokers that store data
      • Thinking controller handles only consumer offsets
      • Assuming controller is a client
      2.

      Which of the following is the correct way to identify the controller broker using Kafka's command line tool?

      kafka-metadata-quorum.sh --bootstrap-server localhost:9092 status

      easy
      A. Find the broker with the lowest port number
      B. Check the broker with the highest broker ID
      C. Look for the LeaderId in the output
      D. Look for the broker with the 'leader' role in the output

      Solution

      1. Step 1: Understand the command output

        The kafka-metadata-quorum.sh status tool shows metadata quorum details including LeaderId, which is the ID of the current controller broker.
      2. Step 2: Identify controller in output

        The controller broker is identified by the LeaderId field, not by broker ID, port number, or generic leader role.
      3. Final Answer:

        Look for the LeaderId in the output -> Option C
      4. Quick Check:

        LeaderId = controller broker ID [OK]
      Hint: LeaderId in metadata quorum status identifies controller [OK]
      Common Mistakes:
      • Assuming highest broker ID means controller
      • Using port number to find controller
      • Confusing generic leader role with LeaderId
      3.

      Given the following code snippet using Kafka AdminClient in Java, what will controllerId hold after execution?

      AdminClient admin = AdminClient.create(props);
      Node controller = admin.describeCluster().controller().get();
      int controllerId = controller.id();
      admin.close();
      medium
      A. The total number of brokers in the cluster
      B. The topic partition count
      C. The port number of the controller broker
      D. The broker ID of the current controller broker

      Solution

      1. Step 1: Analyze AdminClient describeCluster method

        The describeCluster().controller() returns the current controller broker as a Node object.
      2. Step 2: Understand Node.id()

        The id() method returns the broker ID of that Node, which is the controller broker's ID.
      3. Final Answer:

        The broker ID of the current controller broker -> Option D
      4. Quick Check:

        controller().id() = controller broker ID [OK]
      Hint: controller().id() returns controller broker's ID [OK]
      Common Mistakes:
      • Confusing controller ID with number of brokers
      • Thinking it returns port or partition count
      • Ignoring the blocking get() call
      4.

      Consider this snippet to get the controller broker ID using Kafka AdminClient in Java:

      AdminClient admin = AdminClient.create(props);
      Node controller = admin.describeCluster().controller().get();
      int controllerId = controller.id();
      admin.close();

      What is the likely cause if this code throws a java.util.concurrent.ExecutionException?

      medium
      A. The close() method was called too early
      B. The AdminClient failed to connect to any broker
      C. The id() method returns a string, not int
      D. The controller() method does not exist

      Solution

      1. Step 1: Understand ExecutionException cause

        An ExecutionException usually wraps an error during the async call, often connection failure.
      2. Step 2: Check AdminClient connectivity

        If AdminClient cannot connect to any broker, the get() call on controller() future will fail with this exception.
      3. Final Answer:

        The AdminClient failed to connect to any broker -> Option B
      4. Quick Check:

        ExecutionException = connection failure [OK]
      Hint: ExecutionException often means connection problem [OK]
      Common Mistakes:
      • Thinking method does not exist causes ExecutionException
      • Confusing return types of id() method
      • Assuming close() causes this error
      5.

      You want to write a Kafka monitoring tool that automatically detects when the controller broker changes and logs the new controller's broker ID. Which approach is best?

      1. Use AdminClient to poll describeCluster().controller() periodically.
      2. Subscribe to Kafka internal topics to listen for controller changes.
      3. Manually check broker logs for controller election messages.
      4. Restart all brokers to force controller re-election and detect changes.
      hard
      A. Use AdminClient to poll describeCluster().controller() periodically
      B. Subscribe to Kafka internal topics to listen for controller changes
      C. Manually check broker logs for controller election messages
      D. Restart all brokers to force controller re-election and detect changes

      Solution

      1. Step 1: Evaluate monitoring approaches

        Polling describeCluster().controller() via AdminClient is a reliable, programmatic way to detect controller changes.
      2. Step 2: Assess other options

        Subscribing to internal topics is complex and not guaranteed; checking logs is manual and slow; restarting brokers is disruptive and impractical.
      3. Final Answer:

        Use AdminClient to poll describeCluster().controller() periodically -> Option A
      4. Quick Check:

        Polling controller() is best for monitoring [OK]
      Hint: Poll controller() with AdminClient for changes [OK]
      Common Mistakes:
      • Trying to read internal topics for controller changes
      • Relying on manual log inspection
      • Restarting brokers unnecessarily
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard