美文网首页微服务
Mysql跨机房同步方案

Mysql跨机房同步方案

作者: 东方泯 | 来源:发表于2019-05-16 13:52 被阅读0次

    原文:https://cloud.tencent.com/developer/article/1188291

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

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

    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。

    otter: https://github.com/alibaba/otter/wiki/QuickStart

    canal: https://github.com/alibaba/canal

    相关文章

      网友评论

        本文标题:Mysql跨机房同步方案

        本文链接:https://www.haomeiwen.com/subject/zqciaqtx.html