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