Mysql跨机房同步方案

流过昼夜 提交于 2020-10-28 04:40:49

Mysql跨机房同步方案

尚浩宇
 尚浩宇 发布于 2016/05/19 17:01
字数 424
阅读 3298
收藏 20
点赞 2

        假设现有两个机房,需要做到数据同步。

        以下是架构图(实际架构图根据现有机房架构和实际会比下图复杂,但整体思路不变):

        Mycat、Canal、Otter是关键的三项技术:

        Mycat:数据库分库分表中间件,可以管理一个mysql集群,屏蔽了mysql集群,对外伪装成mysql server,用户无感知mysql集群。

        Canal:阿里巴巴开源产品,可以读取mysql二进制日志文件,并解析成想要的数据。

        Otter:阿里巴巴开源产品,配合Canal可以做到读取二进制文件,解析出增量数据sql,然后执行sql到指定连接。

        流程:

            1、用户插入一条数据到mycat

            2、mycat解析sql,分配sql到指定mysql数据库

            3、mysql(假设M1接收到数据)数据库接收数据,根据主从配置,写出二进制日志。

            4、mysql(M2)读取二进制日志同步数据,mysql(S)读取二进制日志同步数据,并写出二进制日志

            5、Canal读取二进制日志,解析成sql

            6、Otter接到sql,获取连接,在机房B的mycat上执行sql

            7、Otter收到sql执行回执,执行完毕。

        注:

            本文给予思路及具体技术方案,具体技术的应用及使用,请自行google。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!