In this document https://zookeeper.apache.org/doc/trunk/zookeeperReconfig.html dynamic configuration functionality is described for Zookeeper 3.5.
There are 2 important points in this document:
- When changing the dynamic config of one Zookeeper instance, all Zookeeper instances in the ensemble automatically get their configs updated.
- Clients of the Zookeeper ensemble can rebalance their connections when the dynamic config gets updated, provided they subscribe to
/zookeeper/configin Zookeeper, or alternatively call
getConfig, and update their own list of Zookeeper servers by calling
This all seems really promising, because at the moment (Kafka 2.12 and Zookeeper 3.4.9), both Zookeeper and Kafka configurations are static, and when a Zookeeper node needs to get replaced, config changes need to be made on each Zookeeper instance in the ensemble and on each Kafka broker, and all participants need to be restarted to reload configs.
My question is, provided that you go with Zookeeper 3.5 and it's new dynamic reconfiguration, is there a Kafka version that is compatible with this, which will update it's own zookeeper.connect configuration when the Zookeeper ensemble gets reconfigured?