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