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()

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

參考鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章