Python如何从Kafka消息中获取打印offset、partition、topic用于调试
Python Kafka Consumer获取消息元数据方法
你使用的kafka-python库中,迭代消费拿到的message为ConsumerRecord类型对象,内置了所有你需要的消息元数据,直接读取对应属性即可:
- 消息所属Topic:
message.topic - 消息所属分区(Partition):
message.partition - 消息偏移量(Offset):
message.offset
修改后的调试用代码如下:
from kafka import KafkaConsumer consumer = KafkaConsumer('my-topic', group_id='my-group', bootstrap_servers=['localhost:9092']) for message in consumer: print(f"Topic: {message.topic}, Partition: {message.partition}, Offset: {message.offset}, Message value: {message.value()}")
注意:如果你原有代码中
message.value()可以正常运行无需修改,如果运行时提示'bytes' object is not callable报错,把message.value()改为message.value即可,kafka-python库中消息内容默认以属性形式存储,不需要调用方法获取。
如果需要更全的调试信息,直接打印完整message对象即可输出时间戳、消息key、序列化大小等所有字段。
内容的提问来源于stack exchange,提问作者Rahul
相关产品推荐
相关产品推荐

