99 "time"
1010
1111 "github.com/Shopify/sarama"
12- "github.com/json-iterator/go"
12+ jsoniter "github.com/json-iterator/go"
1313 "github.com/rcrowley/go-metrics"
1414
1515 "github.com/qiniu/log"
@@ -86,6 +86,7 @@ func NewSender(conf conf.MapConf) (kafkaSender sender.Sender, err error) {
8686 keepAlive , _ := conf .GetStringOr (KeyKafkaKeepAlive , "0" )
8787 maxMessageBytes , _ := conf .GetIntOr (KeyMaxMessageBytes , 4 * 1024 * 1024 )
8888 gzipCompressionLevel , _ := conf .GetStringOr (KeyGZIPCompressionLevel , KeyGZIPCompressionDefault )
89+ version , _ := conf .GetStringOr (KeyKafkaVersion , "" )
8990
9091 name , _ := conf .GetStringOr (KeyName , fmt .Sprintf ("kafkaSender:(kafkaUrl:%s,topic:%s)" , hosts , topic ))
9192
@@ -108,8 +109,10 @@ func NewSender(conf conf.MapConf) (kafkaSender sender.Sender, err error) {
108109 if ! ok {
109110 return nil , fmt .Errorf ("unknown compression mode: '%v'" , compression )
110111 }
111- if compressionMode == sarama .CompressionLZ4 {
112- cfg .Version = sarama .V0_10_0_0
112+ if version != "" {
113+ if cfg .Version , err = sarama .ParseKafkaVersion (version ); err != nil {
114+ return nil , err
115+ }
113116 }
114117 cfg .Producer .Compression = compressionMode
115118 cfg .Net .DialTimeout , err = time .ParseDuration (timeout )
0 commit comments