Skip to main content
 首页 » 编程设计

python之kafka python 不传递消息

2025年02月15日31del

我正在尝试使用 kafka-python 设置一个简单的 Kafka 应用程序.我一直在尝试让我在网上找到的一些示例起作用,但似乎无法做到。我有一个在 docker 容器中运行的 kafka 实例。我测试了 shell 工具,实例确实可以正常工作。我能够发送和接收消息。我怀疑生产者消息超时。以下是具有基本相同行为的代码的两个版本:

import time 
from kafka import SimpleProducer, KafkaClient 
#  connect to Kafka 
kafka = KafkaClient('localhost:9092') 
producer = SimpleProducer(kafka) 
# Assign a topic 
topic = 'test' 
producer.send_messages(topic, b'this is a message') 

第二个版本:

from kafka import KafkaProducer 
from kafka.errors import KafkaError 
 
producer = KafkaProducer(bootstrap_servers=['0.0.0.0:9092'], api_version=(0,10)) 
topic = "test" 
 
producer.send(topic, b'test message') 

请您参考如下方法:

改变行: producer.send(topic, b'test message')

收件人: producer.send(topic, b'test message').get(timeout=30)(或您认为合适的任何值)

问题是生产者在发送消息之前被杀死,因为这个方法是异步的。 如果您添加:

import logging 
logging.basicConfig(level=logging.INFO) 

并看到超时为 0。