Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Zookeeper 3.8.1 server supports clients no older than 3.5.x (i.e. Apache Kafka version 2.4.0) and Zookeeper 3.8.1. clients support server versions no older than 3.5.x (i.e. Apache Kafka version 2.4.0).

Code Block
ZooKeeper clients from 3.5.x onwards are fully compatible with 3.8.x servers.
The upgrade from 3.6.x and 3.7.x can be executed as usual, no particular additional upgrade procedure is needed.
ZooKeeper 3.8.x clients are compatible with 3.5.x, 3.6.x and 3.7.x servers as long as you are not using new APIs not present these versions.

...

A Zookeeper cluster is separate from a Kafka cluster.For example, a user wanting to migrate from a Kafka cluster with version 2.3 and a Zookeeper cluster with version 3.4 to a Kafka cluster with version 3.X (where X is the Kafka version containing this KIP) and Zookeeper cluster with version 3.8.1 would first have to upgrade their Kafka cluster to 3.4.0 (latest version of the time of writing), then update their Zookeeper cluster to 3.8.1 and lastly update their Kafka cluster again from 3.4.0 to 3.X.As another example, a user wanting to migrate from a Kafka cluster with version 2.4 and a Zookeeper cluster with version 3.5 to a Kafka cluster with version 3.X and Zookeeper cluster with version 3.8.1 could upgrade their Kafka cluster to 3.X and then their Zookeeper cluster to 3.8.1 or vice versa.

It is worth mentioning that Kafka is still tested for cluster upgrades between versions 0.8.2 and 3.4.

The table below makes the assumption you want to carry out the upgrades using a rolling restart


Zookeeper cluster (< 3.5)Zookeeper cluster (>= 3.5)
Kafka cluster (< 2.4)
  1. Upgrade the Kafka cluster to version 3.4.0
  2. According to Upgrading to 3.5.0 you will need to carry out a rolling upgrade to Zookeeper 3.4.6 before upgrading the Zookeeper cluster to version 3.8.1
  3. Upgrade the Kafka cluster once more from 3.4.0 to 3.5.
X
  1. 0
  1. Upgrade the Kafka cluster to version 3.4.0
  2. Upgrade the Zookeeper cluster to version 3.8.1
Kafka client (< 2.4)
  1. Upgrade the Kafka clients to >= 2.4. (Optional / Recommended) Upgrade the Kafka clients to a version which does not rely on direct access to Zookeeper (i.e. Kafka 3.4.0)
  2. According to Upgrading to 3.5.0 you will need to carry out a rolling upgrade to Zookeeper 3.4.6 before upgrading the Zookeeper cluster to version 3.8.1
  1. Upgrade the Kafka clients to >= 2.4. (Optional /  Recommended) Upgrade the Kafka clients to a version which does not rely on direct access to Zookeeper (i.e. Kafka 3.4.0)
  2. Upgrade the Zookeeper cluster to version 3.8.1

Kafka cluster (>= 2.4)

  1. Upgrade the Zookeeper cluster to version to 3.8.1 (with a bridge upgrade to Zookeeper 3.4.6 as detailed in Upgrading to 3.5.0)
  1. Upgrade the Zookeeper cluster to version 3.8.1

Kafka client (>= 2.4)

  1. (Optional / Recommended) Upgrade the Kafka clients to a version which does not rely on direct access to Zookeeper (i.e. Kafka 3.4.0)
  2. According to Upgrading to 3.5.0 you will need to carry out a rolling upgrade to Zookeeper 3.4.6 before upgrading the Zookeeper cluster to version 3.8.1
  1. (Optional / Recommended) Upgrade the Kafka clients to a version which does not rely on direct access to Zookeeper (i.e. Kafka 3.4.0)
  2. Upgrade the Zookeeper cluster to version 3.8.1

Below is an analysis of changes introduced in 3.7.0 and 3.8.0 and whether they will introduce breaking changes in Kafka or not.

...