Yeah, the only reason to explicitly set here is to make it work in single node case where the embedded zookeeper sets the client connect string dynamically by finding available socket port. Otherwise, the environment can still resolve ${zk.client.connect} and default to "localhost:2181"