【解決了一個小問題】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