无法使用Golang Sarama包从本地运行的Kafka服务器使用消息
我正在制作一个简单的电报机器人,它可以从本地卡夫卡服务器读取消息,然后打印到聊天室。 zookeeper和kafka服务器配置文件均为默认值。控制台消费者工作。当我试图使用Golang Sarama包使用代码中的消息时,问题就出现了。在我添加这些行之前:无法使用Golang Sarama包从本地运行的Kafka服务器使用消息,go,apache-kafka,telegram-bot,sarama,Go,Apache Kafka,Telegram Bot,Sarama,我正在制作一个简单的电报机器人,它可以从本地卡夫卡服务器读取消息,然后打印到聊天室。 zookeeper和kafka服务器配置文件均为默认值。控制台消费者工作。当我试图使用Golang Sarama包使用代码中的消息时,问题就出现了。在我添加这些行之前: case err:=在代码中设置了所有PartitionConsumers之后,您将关闭您的消费者 defer func() { if err := consumer.Close(); err != nil {
case err:=在代码中设置了所有PartitionConsumer
s之后,您将关闭您的消费者
defer func() {
if err := consumer.Close(); err != nil {
panic(err)
}
}()
但是,文档规定,您只应在关闭所有PartitionConsumers之后关闭使用者
// Close shuts down the consumer. It must be called after all child
// PartitionConsumers have already been closed.
Close() error
我建议您将sync.WaitGroup
添加到函数go func(pc sarama.PartitionConsumer){
在代码中设置所有PartitionConsumer
后,您将关闭您的消费者
defer func() {
if err := consumer.Close(); err != nil {
panic(err)
}
}()
但是,文档规定,您只应在关闭所有PartitionConsumers之后关闭使用者
// Close shuts down the consumer. It must be called after all child
// PartitionConsumers have already been closed.
Close() error
我建议您将sync.WaitGroup
添加到函数go func(pc sarama.PartitionConsumer){
错误消息非常清楚,您的代理(kafka服务器)无法从您的客户端(无论在何处)访问问题是,客户机能够获取消息,但只有在错误消息非常清楚的情况下,您的代理(kafka服务器)才能从您的客户机(无论在何处)访问。问题是,客户机能够获取消息,但只有一次这似乎不是问题所在,因为我删除了延迟功能(只是想看看是否是这样),但程序仍会暂停。在使用test1/0:kafka:broker not connected时,是否仍会给出错误消息kafka:error,如问题中所述?这似乎不是问题,因为我删除了延迟函数(只是想看看是否是这样),但程序仍会暂停。在使用test1/0:kafka:broker not connected时,是否仍会出现问题中提到的错误消息kafka:error?