美文网首页
mysql分布式-复制篇

mysql分布式-复制篇

作者: 在下YM | 来源:发表于2021-07-22 16:56 被阅读0次

作用

对数据备份,实现存储高可用

通过读写分离,提高吞吐量,实现高性能


原理

原理

Mysql的复制 是⼀个异步的复制过程

过程本质为 Slave 从 Master 端获取 Binary Log, 然后再在⾃⼰身上完全顺序的执⾏⽇志中所记录的各种操作

MySQL 复制的基本过程如下:

1,Slave 上⾯的 IO 线程连接上 Master, 并请求从指定⽇志⽂件的指定位置之后的⽇ 志内容。

2,Master 接收到来⾃ Slave 的 IO 线程的请求后, 通过负责复制的IO线程 根据请求信息读取⽇志信息, 返回给 Slave 端的 IO 线程。

3,Slave 的 IO 线程接收到信息后, 将接收到的⽇ 志内容依次写⼊到 Slave 端的 Relay Log⽂件。

4,Slave 的 SQL 线程检测到 Relay Log 中新增加了内容后, 会⻢上解析该⽂件中的内容, 并在⾃身执⾏这些 原始SQL语句。


常用架构

1,主从架构

    性能:

            ⼀主多从, 读写分离, 提⾼吞吐量

    可用性:

            主库单点, ⼀旦挂了, ⽆法写⼊

            从库⾼可⽤

主从架构图

2,主备架构

    性能:

            单库读写, 性能⼀般

    可用性:

            ⾼可⽤, ⼀旦主库挂了, 就启⽤备库

主备架构图

问题:既然主备互为备份,为何不采用双主方案,提供两台主进行负载均衡?

答案:原因是为了避免数据的冲突, 防⽌造成数据的不⼀致性。 虽然在两边执⾏的修改有先后顺序, 但由于 Replication 是异步的实现机制, 同样可能会导致晚做的修改被早做的修改所覆盖

例子

可以看到不仅B库数据错误, 且A&B库数据不⼀致

主备架构搭建除了配置双主同步, 还需要搭配第三⽅故障转移/⾼可⽤⽅案

3,高可用复合架构

    性能:

            读写分离, 提⾼吞吐量

    可用性:

            ⾼可⽤, ⼀旦主库挂了, 就启⽤备库

            A库宕机走B库,B库宕机走A库

高可用复合架构图

读写分离

flask(SQLAlchemy)的读写分离:

    SQLAlchemy进行读写分离的基本思路

        1,实现⾃定义的 session 类, 继承 SignallingSession 类

            --重写 get_bind ⽅法, 根据读写需求选择对应的数据库地址

        2,实现⾃定义的 SQLAlchemy 类, 继承 SQLAlchemy 类

            --重写 create_session ⽅法, 在内部使⽤⾃定义的 Session 类

SQLAlchemy的读写分离代码

django的读写分离:

django进行读写分离的基本思路

1,在项目的app文件中创建db_route.py文件,直接在文件里定义一个数据库路由类,用以区分读写操作。

2,settings.py中把从机加入到数据库的配置文件中,写个路由配置

django的读写分离代码

下面还有mysql的分片,下期分享,88

相关文章

  • mysql分布式-复制篇

    作用 对数据备份,实现存储高可用 通过读写分离,提高吞吐量,实现高性能 原理 Mysql的复制 是⼀个异步的复制过...

  • Redis分布式的发展演变及Raft共识算法

    Redis分布式方案的发展和演变 主从复制时代 跟Kafka、RocketMQ、MySQL、ZooKeeper一样...

  • MySQL读写分离

    实现MySQL读写分离的前提是我们已经将MySQL主从复制配置完毕,可参考我上一篇关于MySQL主从复制的文章。读...

  • MYSQL主从复制及读写分离

    一、MYSQL 主从复制 主从复制作用:(1)处理数据库的物理损坏(2)架构演变的基础(高可用,读写分离,分布式等...

  • Mysql分布式部署 - 主从复制

    1,概述 MySQL数据库自身提供的主从复制功能,可以方便地实现数据的多处自动备份,完成Mysql的分布式部署。多...

  • 以Docker方式实现MySql 主从复制(实践篇)

    本文实践了用Docker方式来实现基于binlog的MySql主从复制。关于MySql主从复制的原理将在下一篇中进...

  • 入坑MySQL组复制

    1. MySQL复制技术简介 1.1 MySQL复制技术的简介 MySQL的复制经历了如下几个阶段: 异步复制:最...

  • mysql 主从基础知识笔记

    mysql 主从同步 mysql 主从,其实也就是mysql 复制了, mysql 主从复制的原理就是从服务器复制...

  • 架构师训练营第6周学习总结

    1.分布式数据库 1,1:MySQL 主从复制(写入主服务器,mysql binlog记录操作日志,备库数据库有个...

  • Mysql 主从复制

    Mysql 主从复制 MySQL Replication 主从复制(也称 AB 复制)允许将来自一个MySQL数据...

网友评论

      本文标题:mysql分布式-复制篇

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