• mysql 读写分离,主从同步 理论


    mysql主从复制中:
    第一步:master记录二进制日志。在每个事务更新数据完成之前,master在二进制日志记录这些改变。MySQL将事务写入二进制日志,即使事务中的语句都是交叉执行的。在事件写入二进制日志完成后,master通知存储引擎提交事务。
    第二步:slave将master的binary log拷贝到它自己的中继日志。首先,slave开始一个工作线程——I/O线程。I/O线程在master上打开一个普通的连接,然后开始binlog dump process。Binlog dump process从master的二进制日志中读取事件,如果已经执行完master产生的所有文件,它会睡眠并等待master产生新的事件。I/O线程将这些事件写入中继日志。
    第三步:SQL slave thread(SQL从线程)处理该过程的最后一步。SQL线程从中继日志读取事件,并重新执行其中的事件而更新slave的数据,使其与master中的数据一致。

    此外,在master中也有一个工作线程和其它MySQL的连接一样,slave在master中打开一个连接也会使得master开始一个线程。复制过程有一个很重要的限制——复制在slave上是串行化的,也就是说master上的并行更新操作不能在slave上并行操作。

    1.一主多备:一般用来做读写分离的,master写,其他slave读,Master :I/O压力集中

     

    2.M-S-S

    使用一台slave作为中继,分担Master的压力,slave中继需要开启bin-log,并配置log-slave-updates

    中继不存数据,只做转发:Slave中继可使用Black-hole存储引擎,不会把数据存储到磁盘,只记录二进制日志

    3、M-M  双主互备

    很多人误以为这样可以做到MySQL负载均衡,实际什么没什么好处,每个服务器需要做同样的同步更新,破坏了事物的隔离性和数据的一致性

    4、M-M-M

    监控三台机器互相做对方的master,互相为主从。

    天生的缺陷:复制延迟,slave上同步要慢于master,如果大并发的情况那延迟更严重

    Mysql在5.6已经自身可以实现fail over

    5、One slave Muti master  一从对多主

    好处:节省成本,将多个master数据自动化整合

    缺陷:对库和表数据的修改较多

  • 相关阅读:
    抽象类与接口
    二叉树的镜像
    树的子结构
    合并两个排序的链表
    反转链表
    链表中倒数第k个结点
    调整数组顺序使奇数位于偶数前面
    230. Kth Smallest Element in a BST
    98. Validate Binary Search Tree
    94. Binary Tree Inorder Traversal(二叉树中序遍历)
  • 原文地址:https://www.cnblogs.com/yuguangyuan/p/5984972.html
Copyright © 2020-2023  润新知