一、kafka-python
1、consumer【消费者】
A、配置参数
1)bootstrap_servers - 初始化集群。格式:[127.0.0.1:9092]
2)auto_offset_reset - 充值偏移量。选项:earliest - 移至最早位置,即第一条。latest - 移至最新位置。默认为“”latest”
3)consumer_timeout_ms - 多长时间内kafka不提供消费数据,自动退出。单位:毫秒。1000 = 1秒
B、函数
1)subscribe(topics=(), pattern=None, listener=None)
订阅主题。如果配置的时候没有配置主题可以在这里进行配置。
2、producer【生产者】
A、配置参数
1)bootstrap_servers - 初始化集群。格式:[127.0.0.1:9092]
2)partitioner - 分区编号。指定消息发往哪个分区。
B、函数
1)send(topic, value=None, key=None, headers=None, partition=None, timestamp_ms=None)
功能:将消息发布到主题
参数:
topic - 主题
value - 消息内容
partition - 指定分区
实例
1、消费者(从第一条开始输出)
auto_offset_reset:重置偏移量。【earliest】移至最早可用(第一条);【latest】移至最新消息,默认latest。
相当于:
[root@master135 kafka]# bin/kafka-console-consumer.sh --bootstrap-server master135:9092 --topic test --from-beginning
consumer.py
#coding=utf-8
import time
from kafka import KafkaConsumer
consumer = KafkaConsumer(
'test', #主题
bootstrap_servers=['master135:9092'],
auto_offset_reset='earliest'
)
for msg in consumer:
print(msg)
producer.py
#coding=utf-8
from kafka import KafkaProducer
producer = KafkaProducer(bootstrap_servers='master135:9092')
for i in range(10):
producer.send('test',str(i))
producer.close()
注:python生产者一定要加上producer.close(),不然不执行
参考:https://kafka-python.readthedocs.io/en/master/apidoc/modules.html