kafka之kafka-python模块使用
1、基础知识
1.1、模块简介
在python的web项目中,我们需要基于 kafka 来实现数据的存储和获取。在python库中有一个功能模块 kafka-python,它可以作为 Apache Kafka 分布式流处理系统的 Python 客户端。 kafka-python 最好与较新的代理(0.9+)一起使用,但向后兼容旧版本(到 0.8.0)。
1.2、模块简介
kafka-python 提供了两个类来分别实现 数据推送 和 数据获取 两种场景。
KafkaConsumer
一个高级消息消费者,消费者迭代器返回 ConsumerRecords,它们是简单的命名元组公开基本消息属性:topic, partition, offset, key, value
KafkaProducer
一个高级的异步消息生产者,KafkaProducer 可以跨线程使用而不会出现问题。
1.3、环境准备
mkvirtualenv python3
pip install kafka-python
2、示例-生产者与消费者操作
2.1、生产者代码
# -*- coding: utf-8 -*- from kafka import KafkaProducer producer = KafkaProducer(bootstrap_servers=["192.168.10.30:9092", "192.168.10.31:9092", "192.168.10.32:9092"]) producer.send('kafkatest', key=b'content',value=b'Hello Kafka') producer.flush()
2.2、消费者代码
# -*- coding: utf-8 -*- from kafka import KafkaConsumer consumer = KafkaConsumer(bootstrap_servers=["192.168.10.30:9092", "192.168.10.31:9092", "192.168.10.32:9092"], enable_auto_commit=True,auto_commit_interval_ms=5000) consumer.subscribe(['kafkatest']) for msg in consumer: print(msg.key,msg.value)
2.3、运行代码
2.3.1、运行消费者代码
2.3.2、运行生产者代码