如何将 kafkacat 有效负载打印输出转换为二进制

bre*_*mri 3 apache-kafka kcat

我可以用来kafkacat从主题中获取元组并将其打印出来:

\n\n
kafkacat -b kafka10.myorg.com:9092 -t MyTopic -o -1 -f '%s\\n'\n
Run Code Online (Sandbox Code Playgroud)\n\n

我在终端中得到类似这样的信息:

\n\n
\xef\xbf\xbd\xc7\x90\xdb\x92\xef\xbf\xbd\xd2\x93\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xc7\x90\xdb\x92\xef\xbf\xbd\xd2\x93\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbdS1_153314S3_153314S4_5422973S2_5420991...\n
Run Code Online (Sandbox Code Playgroud)\n\n

我是否可以将打印出的有效负载转换为二进制格式,以便我可以将其提供给本地代码进行调试?

\n

小智 7

您可以直接将消息作为二进制数据使用,而无需应用格式化。

kafkacat -b kafka10-staging.salesforceiq.com:9092 -t MyTopic -o -1 -D "" > out.file
Run Code Online (Sandbox Code Playgroud)

使用 -D "" 是为了避免将“\n”添加到二进制数据中。 https://github.com/edenhill/kafkacat/issues/72