1

我正在使用 pykafka,我可以获取主题名称,但我无法发送消息。我的代码如下所示

client = KafkaClient(hosts='xx.xx.xx.xx:9092')
topic = client.topics['test']
producer = topic.get_sync_producer()
producer.produce(b"message") 

我收到此错误消息

raise ProduceFailureError("Delivery report not received after timeout")
pykafka.exceptions.ProduceFailureError: Delivery report not received after timeout 
4

1 回答 1

0
    broker.id=1
    listeners=PLAINTEXT://localhost:9092 

我正在发送到外部 IP 消息

如果您正在设置hosts=some.external.IP:9092,那么您需要编辑 Kafka 属性advertised.listeners=PLAINTEXT://some.external.IP:9092并使用 makelisteners=PLAINTEXT://:9092来监听外部接口。

列出主题使用不同的协议,这就是它工作正常的原因。

于 2019-11-26T19:51:02.840 回答