使用python连接kafka

本文介绍了如何使用Python连接Kafka,包括安装步骤及启动Zookeeper和Broker节点。展示了生产消息和消费消息的Python代码示例,特别指出在爬虫项目中,通过Kafka能有效控制数据库写入的并发量,确保数据安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 安装

pip install kafka

2. 使用

分别启动zookeeper服务和一个broker节点

$ bin/zookeeper-server-start.sh config/zookeeper.properties
$ bin/kafka-server-start.sh config/server.properties

运行如下python程序用于生产消息

from kafka import KafkaProducer
# 创建生产者
producer = KafkaProducer(bootstrap_servers='127.0.0.1:9092')  
for _ in range(3):  
	# 指定topic发送bytes类型的数据
	producer.send('my_topic',b'Hello kafka')
producer.send('my_topic',b'Hello kafka')

运行消费者接收数据

$ bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my_topic --from-beginning
Hello kafka
Hello kafka
Hello kafka

也可以使用如下python程序发送json格式数据

producer = KafkaProducer(bootstrap_servers='127.0.0.1:9092',value_serializer=lambda v: json.dumps(v).encode('utf-8'))  
producer.send('my_topic', {'today': 'nice'})   

运行消费者接收数据为

$ bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic my_topic --from-beginning
{"today": "nice"}

同样可以使用python来运行消费者

from kafka import KafkaConsumer
consumer=KafkaConsumer('world',group_id='consumer-20171017',bootstrap_servers=['127.0.0.1:9092'])
for msg in consumer:  
	recv = "%s:%d:%d: key=%s value=%s" %(msg.topic,msg.partition,msg.offset,msg.key,msg.value)  
	print(recv)  

ouput

world:0:198: key=None value=b'{"today": "nice"}'

在爬虫运行过程中往往会有较高的并发向数据库写入数据,为了保证数据库连接安全、控制数据库写入的并发量可以将采集的数据通过生产者发送到节点,单独起一个进程消费数据并执行数据库写入动作。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值