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

时间:2016-12-01 01:37:07

标签: apache-kafka distributed-computing apache-kafka-streams

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上,因此我不确定这是否是问题,但它似乎是a meta data request基于代理日志中的apiKey值。

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

1 个答案:

答案 0 :(得分:1)

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

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

一般来说,只有Kafka经纪人而非Kafka客户才向后兼容,即经纪人与老客户合作,但客户不与老经纪人合作。这可能会在将来发布时有所改善。见KIP-97: Improved Kafka Client RPC Compatibility Policy

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