THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
- Create a znode (or modify existing) under the required path with the configs that you want to update. Example, if you want to change quotas for producer "Adi", add a path under /config/producers/Adi as show shown below.
- Create a sequential znode under "config/changes/config_change_XX". This will send a notification to all the watchers. The data within the change node should indicate what has changed i.e. topic config + topic name, client config + clientId or broker config + brokerId.
- The brokers process the changed configs.
Modeling Default values
In addition to topic/client/broker level overrides, we also need a mechanism to model default configuration. For example: say we have default quotas for all clients and we need to selectively override them on a per-client basis. The above approach doesnSo far, we don't provide have a way to specify change the the default values. We cacan do this by having a special path to store defaults.
Code Block |
---|
The properties in this znode are applicable to all clients, topics and brokers respectively. Changing something here should affect all entities unless overridden explicitly. /config/producers/__default /config/consumers/__default /config/topics/__default /config/brokers/__default Let's extend the example of quotas. Assume that we have a default quota of 5Mbytes per second per producer and we want to change it to 10M for the producer Adi. The default znode will look like this: /config/producers/__default {"version": 0, "config" : {quota=5M} Overridden config: /config/producers/Adi {"version": 0, "config" : {quota=10M} |
...