Kafka 简单生产者不发送消息也不报错
Kafka simple producer not sending messages and not giving an error
我正在编写一个简单的生产者,我只想将原始数据发送到主题中。出于某种原因,我需要指定序列化程序,将消息转换为 json,然后转换为 utf-8,然后发送 json 消息..
此代码无效(没有错误,但主题中没有任何内容)
from kafka import KafkaProducer
producer = KafkaProducer(bootstrap_servers=['localhost:9092'])
topic = "my_new_topic5"
producer.send(topic, b'test message')
此代码有效
producer = KafkaProducer(bootstrap_servers=['localhost:9092'],
value_serializer=lambda x:
dumps(x).encode('utf-8'))
for e in range(2):
data = {'number': e}
producer.send('numtest', value=data)
sleep(5)
尝试在 send()
和 producer.close()
之后调用 producer.flush()
,然后再终止程序。以下应该可以解决问题:
from kafka import KafkaProducer
producer = KafkaProducer(bootstrap_servers=['localhost:9092'])
topic = "my_new_topic5"
producer.send(topic, b'test message')
producer.flush()
producer.close()
如果你用的是windows机器那就有问题了
按照quickstart,我确实挣扎了2天
解决方法:需要在window目录
下设置kafka_home和运行所需的所有命令
我正在编写一个简单的生产者,我只想将原始数据发送到主题中。出于某种原因,我需要指定序列化程序,将消息转换为 json,然后转换为 utf-8,然后发送 json 消息..
此代码无效(没有错误,但主题中没有任何内容)
from kafka import KafkaProducer
producer = KafkaProducer(bootstrap_servers=['localhost:9092'])
topic = "my_new_topic5"
producer.send(topic, b'test message')
此代码有效
producer = KafkaProducer(bootstrap_servers=['localhost:9092'],
value_serializer=lambda x:
dumps(x).encode('utf-8'))
for e in range(2):
data = {'number': e}
producer.send('numtest', value=data)
sleep(5)
尝试在 send()
和 producer.close()
之后调用 producer.flush()
,然后再终止程序。以下应该可以解决问题:
from kafka import KafkaProducer
producer = KafkaProducer(bootstrap_servers=['localhost:9092'])
topic = "my_new_topic5"
producer.send(topic, b'test message')
producer.flush()
producer.close()
如果你用的是windows机器那就有问题了 按照quickstart,我确实挣扎了2天 解决方法:需要在window目录
下设置kafka_home和运行所需的所有命令