首页 > 解决方案 > 出现 kafka 错误:MetadataRequest 版本早于 4 不支持 allowAutoTopicCreation 字段

问题描述

我使用 boot-version 2.1.3.RELEASE 开发了 spring-boot 应用程序。添加了没有特定版本的 kafka-client、spring-fafka、kafka_2.12 和 kafka-streams 依赖项。应用程序旨在从 kafka 主题打开流,并通过在 timedwindow 上对键进行分组来进行计数聚合。在调试模式下,会记录以下错误。

org.apache.kafka.common.errors.UnsupportedVersionException:MetadataRequest 版本早于 4 不支持 allowAutoTopicCreation 字段

2019-10-18 09:18:05.050 调试 6435 --- [0c5acc95c-admin] Oakclients.admin.KafkaAdminClient:[AdminClient clientId=CAG__CNTS_service_ads_2-d1d85a17-42e5-4d98-9ef8-ed90c5acc95c-admin] 调用(callName=topicsMetadata,最后期限Ms = 1571370604855)在1次尝试后失败,出现不可重试的异常

java.lang.Exception: UnsupportedVersionException: MetadataRequest 版本早于 4 不支持 org.apache.kafka.clients.admin.KafkaAdminClient$Call.fail(KafkaAdminClient.java:612) 的 allowAutoTopicCreation 字段~[kafka-clients-2.0 .1.jar:na] 在 >org.apache.kafka.clients.admin.KafkaAdminClient$AdminClientRunnable.handleResponses(KafkaAdminClient.java:984) [kafka-clients-2.0.1.jar:na] 在 >org.apache。 kafka.clients.admin.KafkaAdminClient$AdminClientRunnable.run(KafkaAdminClient.java:1124) [kafka-clients-2.0.1.jar:na] at java.lang.Thread.run(Thread.java:748) [na:1.8 .0_172]

标签: spring-bootapache-kafkaapache-kafka-streamsspring-kafka

解决方案


Boot 2.1.x(当前为 2.1.9)使用 spring-kafka 2.2.x,默认使用 2.0.1 kafka 客户端。有关兼容性矩阵,请参阅项目页面。虽然您通常可以将较新的客户端与较旧的代理一起使用(自 0.10 起),但您当然只能使用代理支持的功能。

0.10.xx 对于较新的 spring-kafka 版本来说太旧了。


推荐阅读