确定与kafka-broker的Kafka-Client兼容性

时间:2019-04-15 14:42:12

标签: java apache-kafka spring-kafka

在远程kafka云集群中,kafka代理将更新为新版本(5.1),因此将应用新的kafka协议。

现在,我应该将我的kafka客户端更新为可以连接。现在,我在spring-boot应用程序中使用以下与kafka相关的依赖项:

<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-parent</artifactId>
<version>1.3.8.RELEASE</version>

<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-kafka</artifactId>
<version>2.0.1.RELEASE</version>

<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka-test</artifactId>
<version>1.0.3.RELEASE</version>

<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
<version>1.0.3.RELEASE</version>

<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>0.9.0.1</version>

<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.11</artifactId>
<version>0.9.0.1</version>

我已经为kafka-clients和kafka-brokers寻找了合适的兼容性矩阵。

  • 有人知道如何成功升级吗?
  • 有人对此依赖性有一个可兼容性矩阵吗?

3 个答案:

答案 0 :(得分:5)

来自https://github.com/spring-cloud/spring-cloud-stream/wiki/Kafka-Client-Compatibility

兼容性矩阵

+--------+--------------+------------------+---------------+-------------+
| Spring |  Spring for  |      Spring      | kafka-clients |    Kafka    |
|  Cloud | Apache Kafka |    Integration   |               |    Broker   |
| Stream |              | for Apache Kafka |               |             |
+--------+--------------+------------------+---------------+-------------+
| 2.1.x  | 2.2.x        | 3.1.x            | 2.0.0,        | 2.0.0,      |
|        |              |                  | 1.1.x,        | 1.1.x,      |
|        |              |                  | 1.0.x(*)      | 1.0.x,      |
|        |              |                  |               | 0.11.0.x(*) |
+--------+--------------+------------------+---------------+-------------+
| 2.0.x  | 2.1.x        | 3.0.x            | 1.1.x,        | 1.1.x,      |
|        |              |                  | 1.0.x(*)      | 1.0.x,      |
|        |              |                  |               | 0.11.0.x(*) |
+--------+--------------+------------------+---------------+-------------+
| 1.3.x  | 1.3.x,       | 2.3.x,           | 0.11.0.x(**), | 0.10.x.x    |
|        | 1.2.x,       | 2.2.x,           | 0.10.2.x      | or higher   |
|        | 1.1.x        | 2.1.x            |               |             |
+--------+--------------+------------------+---------------+-------------+
| 1.2.x  | 1.2.x,       | 2.2.x,           | 0.10.1.x      | 0.10.x.x    |
|        | 1.1.x        | 2.1.x            |               | or higher   |
+--------+--------------+------------------+---------------+-------------+

其他来源

答案 1 :(得分:0)

confluent matrix上有一个指向Spring for Apache Kafka project page的链接(以及spring-kafka / kafka-clients兼容性)。

0.9非常非常老。

通常,低于0.10.2.0的客户/经纪人可以互相交谈,但是如果记录具有标头,则需要> = 0.11.0.0的客户。

答案 2 :(得分:0)

现在支持双向客户端兼容性,您不再需要担心兼容性矩阵,对于启用 KIP-35 的客户端,任何版本都很好,KIP-35 是从 Broker 协议发布的 - 0.10.0,Java 客户端- 0.10.2

参考:

https://cwiki.apache.org/confluence/display/KAFKA/Compatibility+Matrix

https://www.confluent.io/blog/upgrading-apache-kafka-clients-just-got-easier/