背景 发现一个实例的推荐请求比另外一个实例慢10+倍。 分析 通过各种监控工具,最终发现慢的实例执行着canal同步消息,并且更新到es。 由于需要保证数据库同步消息的顺序是对的,因此mq使用单队列、单消费者的方式。 结论 canal更新频繁造成网络IO开销大,数据准备和发送的时间加长。 因此,如果使用canal做数据 同步,建议使用独立的服务做这件事,避免彼此影响,造成性能下降以及同步延迟加大。