异地多活回环同步问题解决方案

1. 异地多活:一般为两地三中心或者三地五中心,这样设计是为了在发生单点故障或网络分区时,集群能继续提供服务。两地三中心可以容忍机房级别灾难,三地五中心可以容忍城市级别灾难。

2. 回环同步:例如数据库A、B双向同步,A上发生的写操作同步到B,B又将此操作同步回A,可能产生无限循环。

 解决方案:利用MySQL的GTID,A上发生数据修改产生binlog日志时,每个事务会生成一个GTID,B同步A的binlog日志时,读取日志中的GTID并写入到自己的binlog中,A再同步B的binlog日志时,读取到日志中的GTID,发现是自己已经执行过的事务,会自动忽略。

参考:异地多活场景下的数据同步之道

posted @ 2023-01-04 14:12  codercg  阅读(328)  评论(0编辑  收藏  举报