Description from Jun:
In 0.9.0.0, the old consumer reads broker info directly from ZK and the code throws an exception if the version in json is not 1 or 2. This old consumer will break when we upgrade the broker json to version 3 in ZK in 0.9.1, which will be an issue. We overlooked this issue in 0.9.0.0. The easiest fix is probably not to check the version in ZkUtils.getBrokerInfo().
This way, as long as we are only adding new fields in broker json, we can preserve the compatibility.