Kafka send問題


kafka 在send之后不會立即把消息發送到broker。會把消息發到producer所在電腦內存里,后端的IOThread會掃描內存,並從中取出消息進行消費。

在調用close()或者flush()方法之后,會立即將消息發送到broker里。

 

from kafka import KafkaProducer

import pickle


producer = KafkaProducer(
    bootstrap_servers='10.2.2.139:9092',
    key_serializer=lambda k:pickle.dumps(k),
    value_serializer=lambda v:pickle.dumps(v))

producer.send('20190428',key='name',value='cys',partition=0)
# for i in range(10):
#     for ii in range(1):
#         result = producer.send('20190428-4',"chenyishi".encode())
#         print(result)
#         print(type(result))

# producer.flush()
producer.close()  # 不加有可能導致內存泄漏

 


免責聲明!

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



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