Search code examples
apache-kafkaspring-cloudspring-kafkaspring-cloud-stream

Spring Cloud stream compatibility matrix with kafka


I need to upgrade kafka broker to version 2.x, all the modules are fine but one component. It is using spring cloud stream with kafka binder version 2.0.2.Release. Internally it seems it is using kafka-client 1.0.2

According to kafka compability matrix, this client should be compatible with all newer kafka versions

Also spring-kafka page https://spring.io/projects/spring-kafka tells to refer to kafka for client-broker compatibility

But I found out this page https://github.com/spring-cloud/spring-cloud-stream/wiki/Kafka-Client-Compatibility where it shows that, whatever the kafka-client, spring cloud is only compatible with Kafka broker version 1.1.x, 1.0.x, 0.11.0.x

This is confusing me, can anybody clarify what is the compatibility?


Solution

  • There really shouldn't be a broker column on that matrix; the client/broker compatibility source of truth is here but it hasn't been updated for a long time.

    In general clients 0.10.2.0 or later will work with any broker (as long as you don't need any of the newer features).

    That said, 2.0.2 is very old; Spring Boot 2.1.x and earlier are no longer supported.

    The oldest spring-cloud-stream that uses a supported Boot version is 3.0.x.

    https://spring.io/projects/spring-cloud-stream

    And it uses spring-kafka 2.3.x and kafka-clients 2.3.1.