canal通过rocketMq同步数据延迟delay问题优化
canal
alibaba/canal: Canal 是由阿里巴巴开源的分布式数据库同步系统,主要用于实现MySQL数据库的日志解析和实时增量数据订阅与消费,广泛应用于数据库变更消息的捕获、数据迁移、缓存更新等场景。
项目地址:https://gitcode.com/gh_mirrors/ca/canal

·
问题现象
mq发送延迟,最大延迟达到了1小时
问题排查
查看grafana监控图表,发现高峰时的TPS大概为1500,平时的TPS最高也只有700,1500堆积完成后TPS直线下降,可以初步判断是canal有消息堆积。
然后查看延迟监控,发现高峰时期有一小时多的延迟
所以判断是canal的延迟,而不是消费者的堆积。
解决方案
修改canal.mq.canalBatchSize的大小
canal.mq.canalBatchSize 是 Canal 配置中的一个参数,每次批量获取数据的最大条目数,默认30,可用于控制Canal向消息队列(如Kafka、RocketMQ等)中批量发送数据的数量,推荐设置是10到1000不等,可以根据自己的业务量设置大小,比如我的设置的3000。
当你修改 canal.mq.canalBatchSize 参数时,你会影响 Canal 向消息队列发送数据的批处理大小。增加 canalBatchSize 的值意味着 Canal 会一次性发送更多的数据到消息队列。这通常可以提高吞吐量,减少发送消息的次数,从而可能降低网络开销和消息队列的写入压力。




alibaba/canal: Canal 是由阿里巴巴开源的分布式数据库同步系统,主要用于实现MySQL数据库的日志解析和实时增量数据订阅与消费,广泛应用于数据库变更消息的捕获、数据迁移、缓存更新等场景。
最近提交(Master分支:30 天前 )
af937544 - 2 个月前
9f2fc740 - 2 个月前
更多推荐
所有评论(0)