【解决了一个小问题】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.为什么协议做不到向后兼容?


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM