kafka python未接收来自golang producer的消息
我正在使用golang发布消息。我想使用我尝试过的python阅读这些消息。kafka python未接收来自golang producer的消息,python,go,apache-kafka,kafka-python,segment-io,Python,Go,Apache Kafka,Kafka Python,Segment Io,我正在使用golang发布消息。我想使用我尝试过的python阅读这些消息。 在所有这些库中,我无法接收消息,我可以通过在golang侧创建一个消费者来阅读来自golang的消息。而且,当我通过python发布消息时,我能够从python消费者和golang消费者那里读取消息,但是那些通过golang发布消息的主题,python端的消费者完全被挂起/卡住,代码不会崩溃,也不会响应 在python消费者中,我能够获得broker及其主题,只有那些通过golang发布消息的主题,python消费者才
在所有这些库中,我无法接收消息,我可以通过在golang侧创建一个消费者来阅读来自golang的消息。而且,当我通过python发布消息时,我能够从python消费者和golang消费者那里读取消息,但是那些通过golang发布消息的主题,python端的消费者完全被挂起/卡住,代码不会崩溃,也不会响应 在python消费者中,我能够获得broker及其主题,只有那些通过golang发布消息的主题,python消费者才会被挂起 Python使用者代码:
consumer = KafkaConsumer(<topic name>, bootstrap_servers=[<ip:port>], auto_offset_reset='earliest', group_id=None, max_partition_fetch_bytes=104857600)
print(consumer.topics()) # Able to get all topic names
for message in consumer:
print(message.value)
请帮助。如果实际上没有消息,则不会挂起。听起来golang制作人并没有刷新缓冲区。。。您是否尝试过像示例一样添加
defer w.Close()
?@OneCricketeer我尝试过defer w.Close(),但仍然没有成功。我可以通过golang consumer访问消息,这是因为当我试图通过python访问消息时,它没有收到消息。可能您应该删除group\u id=None
Thanx,我解决了它。实际上,我必须从另一个远程服务器接收消息,为此,我必须从本地机器公布代理的ip地址。帮我解决它。
l := log.New(os.Stdout, "kafka framer: ", 0)
w := kafka.NewWriter(kafka.WriterConfig{
Brokers: []string{broker_address},
Topic: topic_name,
Logger: l,
})
err := w.WriteMessages(ctx, kafka.Message{
Key: []byte(strconv.Itoa(0)),
Value: []byte(data),
})
if err != nil {
panic("could not write message " + err.Error())
}