Spring Cloud Stream 2.0 是否与 Kafka broker 0.10.2 兼容?
Is Spring Cloud Stream 2.0 compatible with Kafka broker 0.10.2?
Spring Cloud Stream 指定其版本 2.0 使用 kafka-clients 1.0 并兼容 Kafka broker 1.0、0.11(不提及 0.10.2 及之前版本)。
Kafka 指定代理 0.10.2(甚至 0.10.1)与任何版本的 Java 客户端兼容,大概包括 kafka-clients 1.0.
那么 spring-cloud-stream-binder-kafka 2.0 和 0.10.2 代理之间是否存在任何兼容性问题?
我正计划从 spring-cloud-stream 1.2 + Kafka 0.10.2 升级到 spring-cloud-stream 2.0 + Kafka 1.0 并试图了解我是否可以这样做一次性升级(客户端 -> 1.0,然后代理 -> 1.0),否则 spring-cloud-stream.
支持的无停机升级路径是什么
是的,它应该可以正常工作(我刚刚用当前快照对其进行了测试)。
但是2.0默认使用原生kafkaheaders; headers 在 Kafka 中引入了 0.11 代理。
您需要将生产者 headerMode
设置为 none
或 embeddedHeaders
。 (none
是 1.x 中弃用的 raw
的同义词。
1.x 默认使用 embeddedHeaders
,或 raw
(none
) 如果这样配置。
因此,无论代理版本如何,如果您希望 2.0 生产者为 1.x 消费者创建消息,您无论如何都需要这样做。
在消费者端,2.0会检测消息是否有原生或嵌入headers(或none)。
另一个警告是您不能将活页夹 属性 autoAddPartitions
设置为 true
除非代理至少为 1.0.0。提供者使用 java AdminClient
。 1.x 使用了可以增加分区的 scala 客户端。
Spring Cloud Stream 指定其版本 2.0 使用 kafka-clients 1.0 并兼容 Kafka broker 1.0、0.11(不提及 0.10.2 及之前版本)。
Kafka 指定代理 0.10.2(甚至 0.10.1)与任何版本的 Java 客户端兼容,大概包括 kafka-clients 1.0.
那么 spring-cloud-stream-binder-kafka 2.0 和 0.10.2 代理之间是否存在任何兼容性问题?
我正计划从 spring-cloud-stream 1.2 + Kafka 0.10.2 升级到 spring-cloud-stream 2.0 + Kafka 1.0 并试图了解我是否可以这样做一次性升级(客户端 -> 1.0,然后代理 -> 1.0),否则 spring-cloud-stream.
支持的无停机升级路径是什么是的,它应该可以正常工作(我刚刚用当前快照对其进行了测试)。
但是2.0默认使用原生kafkaheaders; headers 在 Kafka 中引入了 0.11 代理。
您需要将生产者 headerMode
设置为 none
或 embeddedHeaders
。 (none
是 1.x 中弃用的 raw
的同义词。
1.x 默认使用 embeddedHeaders
,或 raw
(none
) 如果这样配置。
因此,无论代理版本如何,如果您希望 2.0 生产者为 1.x 消费者创建消息,您无论如何都需要这样做。
在消费者端,2.0会检测消息是否有原生或嵌入headers(或none)。
另一个警告是您不能将活页夹 属性 autoAddPartitions
设置为 true
除非代理至少为 1.0.0。提供者使用 java AdminClient
。 1.x 使用了可以增加分区的 scala 客户端。