主从架构设计

查看binlog

show master status;
show BINLOG events in 'BUUUG-bin.000120';

主从同步需要考虑的风险

  • 突然断电导致主从数据不一致
  • 数据同步延迟问题(主库写,从库查)

如何避免

同步方式:
异步同步(保证性能不会受到同步的影响)
半同步:同步时等待,直到数据已经同步到relay binlog之后,才可以返回到Web/App Server
强制读主…等

不同的主从架构方案


1、一主一从
Slave可以用来做Master的备份。

2、一主多从(应用较广泛)
Master承载了大部分的写请求,Slave承载大部分的读请求。同时可以在Slave3中做备份节点,用于定时任务操作/线下查生产环境数据(哪怕是把数据改了,也不会影响线上)等。选一个Slave做Master的备份,当Master挂掉之后,使用Slave承担Master 的工作。

3、双主
适合写请求压力非常大的情况。比如对id取模,偶数写进一个节点,奇数写进另一个节点。缺点是如果其中一个挂了,整个系统就挂了。

4、级联同步
优点:如果Master挂掉,剩下的Slave是一个天然的主从架构。Master只和一个Slave同步,减轻Master的压力。

5、环形多主
早期淘宝使用过,Master上再接许多从库,形成数据库矩阵,用于提高承载性。
但是只要挂掉一个Master,整体就挂了。特殊情况使用。
现在很少使用了

使用Docker


不推荐在Docker容器中存放频繁读写的文件系统,因为Docker的文件系统是虚拟的,其增删改查操作相对于直接访问主机里的文件系统来说,速度会慢很多。

所以,为了提高性能,应该将Data目录以及配置文件挂载在容器外面。

MySQL主从架构的实现方案

将写请求发动到Master中,将读请求发送到Slave中
不推荐使用AOP进行insert/select分离,因为会增加整个业务系统的复杂性,需要进行修改程序、测试等一系列操作。AOP在调试的时候不是线性的调试,如果对别人写的AOP逻辑了解的话,不容易找到问题出在哪里。

有一些第三方的组件帮助我们进行读写分离,如 sharing-jdbc 等,是侵入式的方案。

使用中心代理节点的方案,对insert/select进行分发,可以屏蔽后端MySQL架构的复杂性,从而让MySQL后端架构对于开发人员来说是透明的。

可以使用MyCat或者Atlas

编写docker-compose.yml

主库的配置



配置完之后,重启数据库
dc restart master

再使用show master status;查看 Binlog_Do_DB,会发现多了一个库

从库的配置



配置完之后,重启数据库
dc restart slave1

需要配置主库信息,才能知道要从哪一个库同步

可以使用show slave status查看slave的同步状态

slave2的配置与slave1相同

Atlas的配置




全部启动

【MySQL】主从复制架构方案 - 笔记相关推荐

  1. 在线建立或重做mysql主从复制架构方法(传统模式和GTID模式)【转】

    mysql主从复制架构,是mysql数据库主要特色之一,绝大多数公司都有用到. 而GTID模式是基于事务的复制模式的意思,发展到现在也是越来越多人用. 以前很多文章,介绍搭建mysql主从复制架构,是 ...

  2. MySQL主从复制架构转换MGR架构(手动版)

    参考链接 : MySQL主从复制架构转换MGR架构(手动版) :https://mp.weixin.qq.com/s/uDUepIGNDt0CPTclgEVWUQ

  3. Mysql 主从复制实战(学习笔记十三)

    https://www.cnblogs.com/along21/p/8011596.html https://blog.csdn.net/qq3401247010/article/details/78 ...

  4. MySQL常见的主从复制架构_如何搭建经典的MySQL 主从复制架构

    什么是MySQL主从架构 首先,大家来看一张图 master-slave 从上图中,可以看出,MySQL主从架构利用的是MySQL的主从复制原理,它主要分三个过程 1.master 主机将操作记录到二 ...

  5. Mysql学习总结(63)——Mysql数据库架构方案选择与分析

    一.数据库架构原则 高可用 高性能 一致性 扩展性 二.常见的架构方案 方案一:主备架构,只有主库提供读写服务,备库冗余作故障转移用 jdbc:mysql://vip:3306/xxdb 高可用分析: ...

  6. 【大型网站技术实践】初级篇:搭建MySQL主从复制经典架构

    一.业务发展驱动数据发展 随着网站业务的不断发展,用户量的不断增加,数据量成倍地增长,数据库的访问量也呈线性地增长.特别是在用户访问高峰期间,并发访问量突然增大,数据库的负载压力也会增大,如果架构方案 ...

  7. mysql高可用架构介绍_介绍详细的MySQL高可用方案

    概述 MySQL高可用,顾名思义就是当MySQL主机或服务发生任何故障时能够立马有其他主机顶替其工作,并且最低要求是要保证数据一致性.因此,对于一个MySQL高可用系统需要达到的目标有以下几点: 数据 ...

  8. MySQL数据库的优化(下)MySQL数据库的高可用架构方案

    [51CTO独家特稿]如果单MySQL的优化始终还是顶不住压力时,这个时候我们就必须考虑MySQL的高可用架构(很多同学也爱说成是MySQL集群)了,目前可行的方案有: 一.MySQL Cluster ...

  9. MySql 主从复制及配置实现

    一.什么是Mysql主从复制 MySQL主从复制是其最重要的功能之一.主从复制是指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中.对于多级复 ...

最新文章

  1. 剑指offer 算法 (发散思维能力)
  2. 【AI出牌器】第一次见这么“刺激”的斗地主,胜率高的关键因素竟是......
  3. Java基础知识——Java集合详解
  4. mysql dts_云树·DTS - 产品系列 - 分布式数据库系统_MySQL数据库性能优化-爱可生...
  5. 基于特征的对抗迁移学习论文_[论文笔记] 对抗样本不是bugs,而是特征
  6. 二叉线索树的先序、中序、后序的线索化及其遍历
  7. eigrp与ospf的综合实验(还是要想想办法才做得出来哦)
  8. 军哥lnmp一键安装包详解
  9. UPDATE语句更新的顺序
  10. 利用JDBC开发图书管理系统
  11. 用OpenStack构建中国人寿数据中心生产云
  12. 关于form提交后展示遮罩及显示进度条gif问题
  13. linux硬链接与软链接的联系与区别
  14. 计算机学业水平考试反思总结8百,考试反思与总结
  15. 如何下载离线地图数据(支持谷歌、百度、高德等所有地图源)
  16. 盘点华为系工控企业——中国A股上市公司最多的创业体系
  17. 网上二手服务器能做家用电脑吗?
  18. [Luogu3600] 随机数生成器 [概率期望动态规划 拉格朗日插值离散微积分]
  19. ORACLE显示毫秒
  20. c语言中while与do while循环的主要区别是什么

热门文章

  1. ZOJ - 3777 Problem Arrangement(状压dp)
  2. 怎样对java网站进行简单修改_用Java写一个简单的毕业设计,功能就增删改查的一些基本功能就可以,需要哪些技术?...
  3. winform关闭当前form_C#中WinForm程序退出方法技巧总结
  4. java数组是否包含某字符串_js判断数组是否包含某个字符串变量的实例
  5. Gh0st 3.6 存在的BUG及修改方法(收集整理)
  6. 破解SQLSERVER存储过程的加密
  7. ElasticSearch探索之路(四)索引原理:倒排索引、列式存储、Fielddata、索引压缩、联合索引
  8. requests库提示警告:InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate ver
  9. 回腾讯了......
  10. 硬核分析|腾讯云原生OS内存回收导致关键业务抖动问题