从 Kafka 0.11.0.1 中的 _transaction_state 个主题读取数据

Reading data from _transaction_state topic in Kafka 0.11.0.1

我想读取事务的元数据(在 Kafka 0.11.0.1 中支持),以便我可以确定是否已提交特定事务 ID 的事务。目前我正在从 _transactional_state 主题获取键和值,但它采用某种编码格式。 以下是我在投票 __transaction_state 主题时收到的一些相同的 key/value: key = 10000000mmm, value = ������+'����������)

您可以查看 kafka/tools/DumpLogSegments.scala 文件中 TransactionLogMessageParser class 的源代码作为示例。它使用 TransactionLog class 中的 readTxnRecordValue 函数。此函数的第一个参数可以通过相同 class.

readTxnRecordKey 函数检索

就像在

中所做的一样

echo "exclude.internal.topics=false" > consumer.config

kafka-console-consumer --consumer.config consumer.config --formatter "kafka.coordinator.transaction.TransactionLog$TransactionLogMessageFormatter" --bootstrap-server localhost:9092 --topic __transaction_state --from-beginning