2
votes

Is the kafka consumer 0.10 compatible with 0.9 broker?

If I'm not mistaken the 0.9 consumer is still considered beta whereas 0.10 is stable, right? That's why I'm interested in using the 0.10 version but my broker version is 0.9 and I wouldn't like to upgrade that yet.

3

3 Answers

14
votes

If you want to use 0.10 clients you need to upgrade your cluster to 0.10.

Kafka is backward compatible with regards to clients but not forward compatible. That is, a 0.9 client can use a 0.10 cluster but a 0.10 client can not use a 0.9 cluster.

The idea is to upgrade your cluster first to 0.10, and then gradually migrating clients from 0.9 to 0.10.

4
votes

My answer is not only for 0.10.0 client. I search Kafka client & broker version compatibility and reach here, so I leave a more complete answer for future reader.

According to this official post:

The “bidirectional” client compatibility work done in KIP-35 and KIP-97 removed these limitations. New Java clients can now communicate with old brokers.

Improved client compatibility is a new feature in Kafka 0.10.2. It is supported by brokers that are at version 0.10.0 or later.

For example, if we use client in 2.0.0, we can use broker 0.10.0 and all other later version (and of course, new feature will not supported). But if we use client in 0.10.1, we can only communicate with broker from 0.10.1 and later version.

So, kafka consumer 0.10 is not compatible with 0.9 broker.

2
votes

You didn't say what language your client is written in and which client libraries you are using. Some clients (like those based on librdkafka) can handle connections to an older broker but the general rule (which is also true for the default Apache kafka java clients) is that the broker must be of equal or higher version number than the clients. In other words, Kafka is backward compatible, but it is not yet fully forward compatible.