首页 > 解决方案 > 通过 CMD 获取启用 SSL 的 Kafka 中的最新偏移量

问题描述

我一直在使用下面的 CMD 从具有纯文本端口的 Kafka 队列中获取最新的偏移量

kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list server:9092 --topic sample_topic --time -1

但是,现在我们只打开了 SSL 端口,所以我尝试将 SSL 详细信息作为属性文件传递

kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list server:9093 --topic sample_topic --time -1 --consumer-config /path/to/file

收到以下错误 -

Exception in thread "main" joptsimple.UnrecognizedOptionException: consumer-config is not a recognized option

如何将 SSL 详细信息传递给此命令?这些是 kafka-run-class.sh kafka.tools.GetOffsetShell 的所有可用参数

--broker-list <String: hostname:and port,...,hostname:port>                
--max-wait-ms <Integer: ms>            
--offsets <Integer: count>             
--partitions <String: partition ids>   
--time <Long: timestamp/-1(latest)/-2             
--topic <String: topic>

标签: apache-kafka

解决方案


不幸的是kafka.tools.GetOffsetShell只支持 PLAINTEXT 连接。这个工具用得不多,也没有人费心去更新它。

根据您的用例,您有几个选择:

  • 使用该kafka-consumer-groups.sh工具:假设您有一个消费者组从该主题消费,该工具显示每个分区的日志结束偏移量

  • 补丁kafka.tools.GetOffsetShell:通过重用其他工具的逻辑来添加对安全连接的支持非常容易。如果这样做,请考虑向 Kafka 发送补丁 =)

  • 编写一个调用的小工具Consumer.endOffsets()

  • 用途kafka.tools.DumpLogSegments:作为最后的手段,这个工具也可以用来找到最后的偏移量

推荐阅读