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