環(huán)境:Windows
任務(wù):完成用 kafka-python 庫操作 kafka 完成生產(chǎn)和消費(fèi)Demo
在 Windows 環(huán)境下安裝 kafka
下載地址:https://kafka.apache.org/downloads.html
點(diǎn)擊鏈接下載到本地,解壓就可以了扰肌。
文件夾樹形結(jié)構(gòu)如下抛寝,Windows 平臺下可以用的命令放在 bin/windows 下
D:\devSoftware\kafka_2.12-2.5.0>tree
├─bin
│ └─windows
├─config
├─libs
├─logs
└─site-docs
啟動 kafka
運(yùn)行 kafka 需要使用 Zookeeper,如果沒有安裝 Zookeeper曙旭,你可以使用 Kafka 自帶打包和配置好的 Zookeeper盗舰。
# 進(jìn)入 windows 腳本目錄
cd bin\windows
# 啟動 zookeeper,注意配置文件位置
zookeeper-server-start.bat ..\..\config/zookeeper.properties
再打開一個 cmd 窗口桂躏,啟動 kafka 服務(wù)
kafka-server-start.bat ..\..\config/server.properties
這樣钻趋,就在本機(jī)啟動了一個默認(rèn)端口為 9092 的 kafka 服務(wù)
安裝 kafka-python
pip install kafka-python
生產(chǎn)者代碼
from kafka import KafkaProducer
producer = KafkaProducer(bootstrap_servers=['localhost:9092'])
future = producer.send('my_topic' , value= b'aaaaaaaaa', partition= 0)
result = future.get(timeout= 10)
print(result)
在 my_topic 主題下,發(fā)布消息為 aaaaaaaaa 的消息剂习;
消費(fèi)者代碼
# 引入 KafkaConsumer
from kafka import KafkaConsumer
consumer = KafkaConsumer('my_topic', bootstrap_servers= ['localhost:9092'])
for msg in consumer:
print(msg)
運(yùn)行消費(fèi)者代碼,他就一直監(jiān)聽生產(chǎn)者發(fā)布的消息鳞绕,只要生產(chǎn)者新產(chǎn)生了一條消息失仁,他就會 print 輸出 msg。
其他驗(yàn)證
cmd 中輸入命令檢查 my_topic 主題下的消息:
# bin\windows 下命令
kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic my_topic --from-beginning
參考資料:
https://www.orchome.com/6
https://zhuanlan.zhihu.com/p/38330574