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

golang使用kafka提示:sarama.NewSyncProducer 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"
	"github.com/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("sarama.NewSyncProducer 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 sarama.NewSyncProducer 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值