Versions Compared

Key

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

...

 

There should be 3 paths within config
/config/clients/<client_id>
/config/topics/<topic_name>
/config/brokers/<broker_id>
Using clients as an example, configs are stored here:
/config/clients/<client_id>
 
ZNode internally can look like this. We shall only have znodes for clients whose quota has been overridden.
{"version": x, "config" : {fetch-quota: 10M, X1=Y1, X2=Y2..}
All config changes will be sequential znodes under . This will be
/config/clients/__config_changes/config_change_XX

 

/config/brokers/__config_changes/config_change_XX
/config/topics/__config_changes/config_change_XX

 

The notification znodes are Here, all the client specific information is retained under the /config/clients path. The notification znode is intentionally separate from the one used currently by TopicConfigManager. This is to avoid processing each others changes and more importantly for safety (can't accidentally change topic configs instead of client configs etc..) Upon startup, all brokers will process all the znodes within config/clients. load all the configs from zookeeper. Here is the workflow for change a config of any type:

  • Create a Config znode or modify an existing config. Since brokers are not watching every single path within config/, a sequential znode needs to be created under the appropriate __config_changes directory. This will trigger

We can add tooling within AdminUtils to update client configuration on the fly.

...