THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
These changes use and are based on KAFKA-1845 (KafkaConfig should use ConfigDef).
Applying Global Configuration to the Broker
The new proposed workflow is the following:
...
The global configuration is stored in the same format as a topic-level configuration:
{ "version" : "1", "config" : {
"message.max.bytes" : "200000",
"num.network.threads" : "5"
}
} |
Dedicated zookeeper path to store global configuration: /brokers/config
Updating Global Configuration
To change global configuration the new Wire Protocol message is introduced. Proposed schema:
Request:
ConfigChangeRequest => [ConfigData] ConfigData => ConfigKey ConfigValue ConfigKey => string ConfigValue => string |
Response:
ConfigChangeResponse => ErrorCode ErrorCode => int16 |
To change global configuration:
- User issues ChangeConfigRequest to Controller with global configuration that needs to be updated
- Controller fetches current global configuration from zk, merges with supplied and validates merged config
- If successful, configuration is updated in zk
- Once broker is restarted new global configuration is applied to it
Compatibility, Deprecation, and Migration Plan
...