指定offset:
#pip install kafka-python
import gzip from kafka import KafkaConsumer from kafka import TopicPartition consumer = KafkaConsumer(bootstrap_servers='127.0.0.1:9092') partition = TopicPartition('mytopic', 0) start = 8833 end = 8835 consumer.assign([partition]) consumer.seek(partition, start) i=start for msg in consumer: if msg.offset > end: break else: print msg try: outF = file( '/data/app/tar/' + str(i) + ".gz", 'wb') outF.write(msg.value) outF.close() i+=1 print i except Exception,e: print e
指定分区:
通过assign、subscribe两者之一为消费者设置消费的主题 consumer = KafkaConsumer(bootstrap_servers=['127.0.0.1:9092'], auto_offset_reset='latest', enable_auto_commit=True, # 自动提交消费数据的offset consumer_timeout_ms= 10000, # 如果1秒内kafka中没有可供消费的数据,自动退出 value_deserializer=lambda m: json.loads(m.decode('ascii')), #消费json 格式的消息 client_id='consumer-python3' ) # consumer.assign([TopicPartition('MY_TOPIC1', 0)]) # msg = next(consumer) # print(msg) consumer.subscribe('MY_TOPIC1') for msg in consumer: print (msg) API及常用参数说明: class kafka.KafkaConsumer(*topics, **configs) *topics (str) – 可选,设置需要订阅的topic,如果未设置,需要在消费记录前调用subscribe或者assign。 client_id (str) – 客户端名称,默认值: ‘kafka-python-{version}’ group_id (str or None) – 消费组名称。如果为None,则通过group coordinator auto-partition分区分配,offset提交被禁用。默认为None auto_offset_reset (str) – 重置offset策略: 'earliest'将移动到最老的可用消息, 'latest'将移动到最近消息。 设置为其它任何值将抛出异常。默认值:'latest'。 enable_auto_commit (bool) – 如果为True,将自动定时提交消费者offset。默认为True。 auto_commit_interval_ms (int) – 自动提交offset之间的间隔毫秒数。如果enable_auto_commit 为true,默认值为: 5000。 value_deserializer(可调用对象) - 携带原始消息value并返回反序列化后的value subscribe(topics=(), pattern=None, listener=None) 订阅需要的主题 topics (list) – 需要订阅的主题列表 pattern (str) – 用于匹配可用主题的模式,即正则表达式。注意:必须提供topics、pattern两者参数之一,但不能同时提供两者。 metrics(raw=False) 获取消费者性能指标。 参考API:https://kafka-python.readthedocs.io/en/master/apidoc/KafkaConsumer.html
原文强参考:https://www.cnblogs.com/shouke/p/10463377.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2018-11-01 POI 解析excel 空行问题
2018-11-01 jdk配置(备份)