Kafka Streams - kafka-streams-application-reset.sh 发送错误的 API 版本

Kafka Streams - kafka-streams-application-reset.sh sending wrong API version

Kafka 0.10.0.1 添加了使用名为 kafka-streams-application-reset.sh

的脚本重置 Kafka Streams 应用程序的功能

Confluent 对此脚本有一些很好的文档 here

不幸的是,运行脚本在本地导致错误:

$ bin/kafka-streams-application-reset --application-id my-streams-app \
                                      --input-topics my-input-topic \
                                      --intermediate-topics rekeyed-topic \
                                      --bootstrap-servers brokerHost:9092 \
                                      --zookeeper zookeeperHost:2181

# output
ERROR: Request GROUP_COORDINATOR failed on brokers List(...)

此外,代理日志中出现以下行:

kafka.network.InvalidRequestException: Error getting request for apiKey: 3 and apiVersion: 2

据我所知,客户端似乎发出了无效请求,但我不确定为什么会这样。我们的经纪人仍在使用 0.9.0,所以我不确定这是否是问题所在,但根据经纪人日志中的 apiKey 值,它似乎是 a meta data request

有人可以告诉我为什么会发生这种情况以及如何解决吗?

Kafka Streams 基于版本 0.10,不适用于 0.9。

bin/kafka-streams-application-reset工具也是如此。它在内部使用 0.10 KafkaClient 并需要 0.10 经纪人。

一般来说,只有 Kafka broker 而不是 Kafka clients 是向后兼容的,即 broker 可以与旧的 clients 一起工作,但 clients 不能与旧的 broker 一起工作。这可能会在未来发布时得到改进。参见 KIP-97: Improved Kafka Client RPC Compatibility Policy

错误消息——即使描述性不强且难以理解——告诉您您尝试连接到不理解新客户端的代理。