...
This KIP proposes a new protocol request and response to be added to the Kafka protocol, BrokerMetadataRequest and BrokerMetadataResponse. While simply adding a simple overall API protocol version adding only the ProtocolVersion field to the response would solve the issues at hand it is probably a good idea to conceive a more generic interface that allows the broker to communicate any sort of information about itself in a generic fashion to cater for future needs, such as communicating supported features, protocols, endpoints, etc, to the client.
...
Key | Value (example) | Reason | |||
---|---|---|---|---|---|
broker.version | 0.9.0.0 | Useful for monitoring applications, admin tools, etc. | |||
supported.compression.codecs | snappy,gzip,lz4 | Lets a newer producer avoid using unsupported codecs. Alternatively using the Message.Attributes codes (e.g. "1,2,5"). | |||
endpoints | plaintext:9091,ssl:9092 | Announces broker endpoints, allows clients to "upgrade" connection to SSL | rack | a rack identifier | For rack based consumer balancing |
<...> | <..> | Arbitrary key-value configured in broker.properties by user. E.g., "rack"="a1b2", for consumer balancing. |
Another benefit of this API is further client de-integration from ZooKeeper since broker and cluster metadata may now be queried directly from the broker.
...