Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
kafka python未接收来自golang producer的消息_Python_Go_Apache Kafka_Kafka Python_Segment Io - Fatal编程技术网

kafka python未接收来自golang producer的消息

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发布消息。我想使用我尝试过的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())
}