python 消费kafka数据

本文介绍了如何通过Python的kafka-python库安装和消费Kafka主题数据。首先使用pip安装kafka-python,然后创建消费者,指定bootstrap_servers和topic。接着获取topic的分区,设置offset并开始消费。代码示例展示了从起始位置开始消费所有数据,以及持续消费新数据直到有数据可用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装kafka 库

pip install kafka-python

消费 topic 下所有数据

from kafka import KafkaConsumer, TopicPartition


# 创建消费者
consumer = KafkaConsumer(bootstrap_servers='host:port')
topic = 'test_topic'
# 获取topic的分区
partition = list(consumer.partitions_for_topic(topic=topic))[0]
print(partition)
topic_partition = TopicPartition(topic=topic, partition=partition)
# 指定消费的topic
consumer.assign([topic_partition])
# 获取 offset 的起始位置和结束位置
start_offset = consumer.beginning_offsets([topic_partition])[topic_partition]
end_offset = consumer.end_offsets([topic_partition])[topic_partition]
print(start_offset)
print(end_offset)
# 将 offset 重置到起始位置,也可以重置到任意位置 consumer.seek()
consumer.seek_to_beginning((topic_partition))
# end_offset 是对应没有数据的 offset 消费会被阻塞, 消费到end_offset - 1就已经获取全部数据了
for i in range(start_offset, end_offset):
    msg = next(consumer)
    print(msg)
    print(msg.value)

持续消费kafka中的数据

# 没有数据的时候会被阻塞,直到有可以消费的数据
for msg in consumer:
    print(msg)
    print(msg.value)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值