美文网首页
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