首页/数据/数据工程与 ETL 速查/Python 客户端使用要点
Kafka64 条

Python 客户端使用要点

Python 生态常用两个客户端:kafka-python(纯 Python,安装简单)与 confluent-kafka(基于 librdkafka,性能与特性更贴近官方实现)。选型结合吞吐与维护现状。

kafka-python纯 Python 实现,API 简单,适合中小吞吐与脚本
confluent-kafkalibrdkafka 封装,性能好、配置面广
建议生产链路先核对客户端与 Broker 版本兼容矩阵

kafka-python 示例

kafka-python 示例
from kafka import KafkaProducer, KafkaConsumer

producer = KafkaProducer(bootstrap_servers='kafka1:9092', acks='all')
producer.send('orders', key=b'o-1001', value=b'{"amount": 9.9}')
producer.flush()

consumer = KafkaConsumer('orders',
                         bootstrap_servers='kafka1:9092',
                         group_id='order-consumer',
                         enable_auto_commit=False,
                         auto_offset_reset='earliest')
for msg in consumer:
    print(msg.partition, msg.offset, msg.value)
高吞吐场景优先评估 confluent-kafka;纯 Python 客户端在大量分区与高并发下 CPU 占用更高。

易错点

  • 脚本消费忘记 close/commit 会反复重读同批数据
  • 用 print 调试消息内容时注意日志系统可能记录敏感字段,输出前脱敏

数据来源与参考

  • kafka-python 官方文档
  • confluent-kafka-python 官方文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌