美文网首页
canal + kafka 事务一致性问题

canal + kafka 事务一致性问题

作者: Atomas | 来源:发表于2021-10-27 10:43 被阅读0次

    场景1: 在一个事务里插入两条数据,会被拆分成两个消息(in kafka)

    环境配置: canal 版本v.1.1.5 + kafka (topic-partition设置为1)
    canal.mq.flatMessage = true (消息以json的格式保存)

    将配置进行更改: canal.mq.flatMessage = false(消息以PB的格式保存),一个事务会保存在一个消息体里,问题解决!(但没明白事务一致性,为什么会受数据存储格式的影响) 【已在官网发了个issue https://github.com/alibaba/canal/issues/3850

    场景2: 在一个事务里插入8条数据,会被拆分成两个消息(in kafka)

    环境配置: canal 版本v.1.1.5 + kafka (topic-partition设置为1)
    canal.mq.flatMessage = false
    canal.mq.canalBatchSize = 20
    kafka.batch.size = 16384

    将配置更改为:
    kafka batch.size: the size of a micro-batch of the producer, the default is 16K
    kafka.batch.size = 32768 (不要超过1M, kafka.max.request.size)
    canal.mq.canalBatchSize: get the batch size of binlog data, the default is 50K
    canal.mq.canalBatchSize = 50
    一个事务会保存在一个消息体里,问题解决!

    相关文章

      网友评论

          本文标题:canal + kafka 事务一致性问题

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