Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The ZK listener can have a Properties object parsed from reference to KafkaConfig or the properties file object which was used to start the KafkaServer. Anytime a change notification is received, we should do the following:

  1. Parse received notification into a properties object.
  2. Within KafkaConfig, for each newly changed property, verify that it can be changed dynamically. For this, ConfigDef needs to expose a getConfigKey() method that can be used to check the isDynamic flag. If a property cannot be updated, log a warning and move on.

All configs should always be accessed via a reference to KafkaConfig. For this, all subsystems within the broker need to be configured with a config object and not individual config values.

...

Currently, the change notification znode only contains the topic name. We need to add more information to distinguish whether this config change is for a topic, client or broker config. We need to distinguish producers and consumers separately because it is possible for a producer and consumer to have the same clientId. Version numbering should also be added. 

Code Block
The notification data can be:
{"version" : 1, "entity":"topic/producer/consumer/broker", "value" : "topic_name/client_id/broker_id"}

...