美文网首页
go版本kafka的坑

go版本kafka的坑

作者: 潘雪雯 | 来源:发表于2022-12-13 15:29 被阅读0次

sarama.StringEncoder 和sarama.ByteEncoder的区别

在推送kafka的sarama.ProducerMessage中,

m := &sarama.ProducerMessage{
            Topic: topic,
            Value: sarama.StringEncoder(buf),
        }

在Value选择编码方式时,如果选择ByteEncoder, 在后面的批量发送kafka k.producer.SendMessages(msgs) 的时候,会出现问题,问题就是发到kafka的数据每条数据都是一样的。但是用单次发送k.producer.SendMessage(msg)是没问题的。
但是问题是单次发送的效率太低了,最好使用批量发送的方式。这个时候就要选择sarama.StringEncoder方式,不然太坑了,这个问题让我查了一天, 一直以为是go的append改变了发送数据的格式呢

https://github.com/Shopify/sarama/issues/1625

感悟:
遇到这种问题,真得找到地方去查,比如我现在用到kafka的问题,就应该去github库对应的issue中查

相关文章

网友评论

      本文标题:go版本kafka的坑

      本文链接:https://www.haomeiwen.com/subject/xfvhqdtx.html