Kafka send问题

时间:2023-03-08 20:21:01

kafka 在send之后不会立即把消息发送到broker。会把消息发到producer所在电脑内存里,后端的IOThread会扫描内存,并从中取出消息进行消费。

在调用close()或者flush()方法之后,会立即将消息发送到broker里。

Kafka send问题

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('',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() # 不加有可能导致内存泄漏