golang使用kafka提示: err, message=kafka: client has run out of available brokers t

时间:2025-03-01 22:06:19

golang使用kafka提示: err, message=kafka: client has run out of available brokers to talk to (Is your cluster reachable?)
kafka安装网上很多,本人这就不详述,默认配置端口9092,zookeeper为2181
在golang运行如下代码:

package main

import (
	"fmt"
	"/Shopify/sarama"
	"log"
	"os"
	"time"
)

func main() {
	var address = []string{"127.0.0.1:9092"}
	topic := "test"
	syncProducer(address, topic)
	time.Sleep(2 * time.Second)
}

// 同步生产消息模式
func syncProducer(address []string, topic string) {
	config := sarama.NewConfig()
	config.Producer.Return.Successes = true
	config.Producer.Timeout = 3 * time.Second
	p, err := sarama.NewSyncProducer(address, config)
	if err != nil {
		log.Printf(" err, message=%s \n", err)
		return
	}
	defer p.Close()

	strKey := "key"
	srcValue := "sync: this is a message, index=%d"
	for i := 0; i < 5; i++ {
		value := fmt.Sprintf(srcValue, i)
		msg := &sarama.ProducerMessage{
			Key:   sarama.StringEncoder(strKey),
			Topic: topic,
			Value: sarama.ByteEncoder(value),
		}
		part, offset, err := p.SendMessage(msg)
		if err != nil {
			log.Printf("send message(%s) err=%v \n", value, err)
		} else {
			fmt.Fprintf(os.Stdout, value+"发送成功, partition=%d, offset=%d \n", part, offset)
		}
	}
}

2020/09/11 17:22:11 err, message=kafka: client has run out of available brokers to talk to (Is your cluster reachable?)
本人在使用从cmd,kafka提示正常运行,但采用非管理员权限,所以一直提示此错误,通过telnet 127.0.0.1 9092提示无法连接,可能是没有启动kafka。
如果通过telnet 127.0.0.1 2181 连接成功,在windows下连接正常的话就是进入一个黑窗口什么内容都没有
在使用管理员权限打开kafka后,再次运行代码能正常发送消息到kafka