spring-boot - 出现 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]
解决方案
Boot 2.1.x(当前为 2.1.9)使用 spring-kafka 2.2.x,默认使用 2.0.1 kafka 客户端。有关兼容性矩阵,请参阅项目页面。虽然您通常可以将较新的客户端与较旧的代理一起使用(自 0.10 起),但您当然只能使用代理支持的功能。
0.10.xx 对于较新的 spring-kafka 版本来说太旧了。
推荐阅读
- php - 数组PHP中的动态括号索引
- r - 在 R 中创建和可视化联合概率分布
- python - 如何使用 Python 从 Excel 中提取特定行范围内的值
- variables - 使用特殊字符为用户名和密码创建 Ansible 变量
- javascript - 如何在浏览器窗口的最右侧制作离子/反应滚动条
- laravel - 合并方法在 voyager laravel 中不起作用
- google-sheets - 谷歌表格自下而上在多个标签上进行 Vlookup
- c - 在 C 中将邻接矩阵转换为邻接表
- python - 为什么 tweepy api.create_friendship 给我一个未经授权的错误
- angularjs - 使用 $https 从 AngularJS 调用 .NET Core API - 400 Bad Request