【解决了一个小问题】golang samara的kafka客户端中使用错误版本号导致初始化失败

发现在如下代码中存储kafka生产者初始化失败:

		config.Version = sarama.V0_10_2_1  //V2_2_0_0
		producer, err := sarama.NewSyncProducer(options.Kafka.KafkaBrokerList, config)
		if err != nil {
			log.Printf("sarama.NewSyncProducer fail:%+v, list=%+v\n", err, options.Kafka.KafkaBrokerList)
			return err
		}

错误信息是:

kafka: client has run out of available brokers to talk to (Is your cluster reachable?)

一开始以为是防火墙没开端口,但是telnet上去又是对的。

后来发现kafka的服务器版本是:0.10.2.1,而原来的代码里使用的版本是 V2_2_0_0
代码中修改版本后正常。

前人挖坑的痛苦:
1.为什么协议版本错误不返回版本错误的提示?
2.为什么协议做不到向后兼容?

posted on 2020-11-30 22:03  ahfuzhang  阅读(3825)  评论(0编辑  收藏  举报