通过 CMD 获取 SSL Enabled Kafka 中的最新偏移量

Ven*_*ata 10 apache-kafka

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

kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list server:9092 --topic sample_topic --time -1
Run Code Online (Sandbox Code Playgroud)

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

kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list server:9093 --topic sample_topic --time -1 --consumer-config /path/to/file
Run Code Online (Sandbox Code Playgroud)

得到以下错误 -

Exception in thread "main" joptsimple.UnrecognizedOptionException: consumer-config is not a recognized option
Run Code Online (Sandbox Code Playgroud)

如何将 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>
Run Code Online (Sandbox Code Playgroud)

Mic*_*son 13

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

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

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

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

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

  • 用途kafka.tools.DumpLogSegments:作为最后的手段,此工具还可用于查找最后一个偏移量