一、kafka是什么?
kafka 是一个分布式流式计算平台。而在大部分企业开发人员中,都是把 kafka 当成消息系统使用,即它是一个分布式消息队列,很少会使用 kafka 的流式计算。它有四个关键概念:
- topic :kafka 把收到的消息按 topic 进行分类,因此可以理解为 topic 是一种类别
- producer :往kafka 发送消息的用户
consumer :接收 kafka 消息的用户
二、使用步骤
1. 安装
安装 kafka: pip install kafka-python
1.引入库
代码如下(示例):
from kafka import KafkaConsumer
from kafka import KafkaProducer
2.消费端:读取数据
发送和接受消息解析
# 客户端接受消息如下
ConsumerRecord(topic='my_topic', partition=0, offset=4, timestamp=1529569531392,
timestamp_type=0, key=b'my_value', value=None, checksum=None,
serialized_key_size=8,
serialized_value_size=-1)
# 解释
topic
partition
offset : 这条消息的偏移量
timestamp : 时间戳
timestamp_type : 时间戳类型
key : key值,字节类型
value : value值,字节类型
checksum : 消息的校验和
serialized_key_size : 序列化key的大小
serialized_value_size : 序列化value的大小,可以看到value=None时,大小为-1
- 消费:
# my_topic 为Topic的名称
# group_id 指定次消费者实例属于的组名,可以不指定
# bootstrap_servers kafka地址
consumer = KafkaConsumer('my_topic', group_id= 'group2', bootstrap_servers= ['localhost:9092'])
for msg in consumer:
print(msg) # 消费到的数据
- 解码json(接