python生產和消費kafka數據


安裝kafka-python

pip install kafka-python

生產者

from kafka import KafkaProducer  # 有時候導入包會報錯,使用pip uninstall kafka-python,卸載后重裝可以解決
import json

# 創建producer對象
producer = KafkaProducer(
                            value_serializer=lambda v: json.dumps(v).encode('utf-8'),  # 對發送的數據進行序列化處理
                            bootstrap_servers=['192.168.0.189:9092','192.168.0.190:9092','192.168.0.191:9092']  # 安裝了kafka的集群
                         )
for i in range(10):
    # 創建 data
    data={
        "name":"李四",
        "age":23,
        "gender":"男",
        "id":i
    }

    # 將data發送到kafka,主題'test_topic'(自定義)
    producer.send('test_topic', data)

producer.close()

消費者

from kafka import KafkaConsumer
import json

# 建立消費者對象
consumer = KafkaConsumer('test_topic',  # 與消費者中發送消息的 topic對應
                         bootstrap_servers=['192.168.0.189:9092','192.168.0.190:9092','192.168.0.191:9092'],
                         value_deserializer=json.loads  # 反序列化數據
                         )

# 生產者中send()一次數據,消費者中就會接收到一次數據,所以需要遍歷
for message in consumer:
    print(message.value)  # 通過.value方法獲取到值

consumer.close()

注:有時候建立 生產者 或消費者 對象時會報錯,反復多試幾次就可以建立成功,具體什么原因還得多研究,后續補充

參考鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM