MySQL数据库的集群方案
读写分离结构(主从)
读多写少,也就是对数据库读取数据的压力比较大。
其中一个是主库,负责写入数据,成为写库;其他都是从库,负责读取数据,成为读库。
对我们的要求:
- 读库和写库的数据一致;
- 写数据必须写到写库;
- 读数据必须到读库;
集群方案与单节点的差异:
- 数据库从之前的单节点变为多节点提供服务;
- 主节点数据,同步从节点数据;
- 应用程序需要连接2个数据库节点,并且在程序内部实现判断读写操作;
这种方案的缺点:
- 应用程序需要连接到多个节点,对应用程序而言变得复杂;
- 这个问题可以通过中间件解决;
- 如果在程序内部实现,可使用Spring的AOP功能实现;
- 主从之间的同步,是异步完成,也就意味着是 弱一致性;
- 可能会导致数据写入主库后,应用程序读取从库获取不到数据,或者可能会丢失数据,对于数据安全性要求比较高的应用是不合适的;
- 该问题可以通过PXC集群解决;
中间件
应用程序会连接到多个节点,使得应用程序的复杂度提升,可以通过中间件方式解决。
- 应用程序只需要连接到中间件即可,无需连接多个数据库节点;
- 应用程序无需区分读写操作,对中间件直接进行读写操作即可;
- 在中间件中进行区分读写操作,读操作发送到从节点,写操作发送到主节点;
这种方式的架构也存在问题,中间件的性能成为系统的瓶颈,但是可以使用多个中间件部署的方式进行缓解。
这样的话,中间件的可靠性得到了保证,但是也带来了新的问题,应用系统依然需要连接2个中间件,增加了应用系统的复杂度。
负载均衡
为了解决以上问题,我们将继续优化架构,在应用程序和中间件之间增加proxy代理,由代理来完成负载均衡的功能,应用程序只需要对接到proxy即可。
PXC集群架构
在前面的架构中,都是基于MySQL主从的架构,那么在主从机构中,弱一致性问题依然没有解决,如果在需要强一致性的需求中,显然这种架构是不能应对的,比如:交易数据。
PCX提供了读写强一致性的功能,可以保证数据在任何一个节点写入的同时可以同步到其他节点,也就意味着可以从其他的任何节点进行读取操作,无延迟。
混合架构
在前面的PXC架构中,虽然可以实现了事务的强一致性,但是它是通过牺牲了性能换来的一致性,如果在某些业务场景下,如果没有强一致性的需求,那么使用PXC就不合适了。所以,在我们的系统架构中,需要将这两种方式综合起来,这样才是一个完善的架构。
主从复制原理
MySQL主(master)从(slave)复制的原理:
- master将数据改变记录到二进制日志(binary log)中,即配置文件log-bin指定的文件(这些记录叫做二进制日志时间,binary log events);
- slave将master的binary log events拷贝到它的中继日志(relay log);
- slave重新执行中继日志中的事件,将改变反映它自己的数据(数据重演);
主从配置需要注意的地方:
- 主DB server和从DB server数据库的版本一致;
- 主DB server和从DB server数据库数据结构、数据一致;
- 主DB server开启二进制日志,主DB server和从DB server的server_id都必须唯一;
MySQL数据库的集群方案的更多相关文章
- MySQL数据库企业集群项目实战(阶段三)
MySQL数据库企业集群项目实战(阶段三) 作者 刘畅 时间 2020-10-25 目录 1 架构拓扑图 1 1.1 方案一 1 1.2 方案二 2 ...
- MySQL高可用集群方案
一.Mysql高可用解决方案 方案一:共享存储 一般共享存储采用比较多的是 SAN/NAS 方案. 方案二:操作系统实时数据块复制 这个方案的典型场景是 DRBD,DRBD架构(MySQL+DRBD+ ...
- Mysql数据库搭建集群---实现主从复制,读写分离
参考博客:https://blog.csdn.net/xlgen157387/article/details/51331244 A. 准备:多台服务器,且都可以互相随意访问root用户,都可以随意进 ...
- 京东分布式MySQL集群方案介绍
背景 数据库作为一个非常基础的系统,任何一家互联网公司都会使用,数据库产品也很多,有Oracle.SQL Server .MySQL.PostgeSQL.MariaDB等,像SQLServer/Ora ...
- 分布式MySQL集群方案的探索与思考
转载:http://www.infoq.com/cn/articles/exploration-of-distributed-mysql-cluster-scheme?utm_campaign=rig ...
- 转载自infoq:MYSQL的集群方案
分布式MySQL集群方案的探索与思考 2016-04-29 张成远 “本文整理自ArchSummit微信大讲堂张成远线上群分享内容 背景 数据库作为一个非常基础的系统,任何一家互联网公司都会 ...
- 【MySQL】MySQL-主从复制-集群方案-数据一致性问题解决方案 && MySQL备份的各种姿势
1.写性能如何保证:分库分表 2.读性能如何保证:主从结构,实时备份 3.一致性问题怎么解决: 3.1.微博案例:Redis缓存,热数据查询走Redis,主从的延迟通过Redis消除 3.2.支付宝的 ...
- 多图文,详细介绍mysql各个集群方案
目录 多图文,详细介绍mysql各个集群方案 一,mysql原厂出品 二,mysql第三方优化 三,依托硬件配合 四,其它 多图文,详细介绍mysql各个集群方案 集群的好处 高可用性:故障检测及迁移 ...
- mysql各个集群方案的优劣
集群的好处 高可用性:故障检测及迁移,多节点备份. 可伸缩性:新增数据库节点便利,方便扩容. 负载均衡:切换某服务访问某节点,分摊单个节点的数据库压力. 集群要考虑的风险 网络分裂:群集还可能由于网络 ...
- MySQL高可用集群MHA方案
MySQL高可用集群MHA方案 爱奇艺在用的数据库高可用方案 MHA 是目前比较成熟及流行的 MySQL 高可用解决方案,很多互联网公司正是直接使用或者基于 MHA 的架构进行改造实现 MySQL 的 ...
随机推荐
- openGauss Datakit安装部署
一.问题描述:目前找不到任何关于opengauuss Datakit安装部署的文档,自己来尝试踩坑. DataKit是一个以资源(物理机,数据库)为底座的开发运维工具,将上层的开发运维工具插件化,各插 ...
- 【Spring5】IOC
1 Spring概念 Spring是轻量级的开源JavaEE框架.可以解决企业开发的复杂性. Spring有两个核心部分:IOC和Aop ①IOC控制反转:把创建对象过程交给Spring管理 ②Aop ...
- Python精品书籍
目录 Python精品书籍 * 参考资料 基础 Python编程:从入门到实践(第2版) 笨办法学_Python Coding for Kids: Python: Learn to Code with ...
- FLV文件分析
很久没看,做下关于FLV文件格式知识点回顾! 一.简单介绍 FLV(Flash Video)是Adobe公司推出的一种媒体封装格式.一个FLV文件,每个Tag类型都属于一个流.也就是说一 ...
- js中 call()与apply()方法 和 bind()方法
call与apply都属于Function.prototype(即原型对象身上的方法)的一个方法,所以每个function实例都有call.apply属性: call()和apply() 是静态方法, ...
- 2021牛客OI赛前集训营-提高组(第三场) 第二题 交替 题解与结论证明
题目描述 一个长度为 \(n\) 的数组\(A\),每秒都会变成一个长度为 \(n − 1\) 新数组 \(A'\),其变化规 则如下: 若当前数组 \(A\) 的长度 \(n\) 为偶数,则对于新数 ...
- pngquant 在 Windows 上压缩带中文路径的 png 图片
pngquant 是一个优秀的 png 压缩工具,但是在 Windows 上不支持目录中带有 unicode 字符(例如中文)的文件.所以要用一个折中的办法(即标准输入)让 pngquant 压缩目录 ...
- 2022-03-24:你被请来给一个要举办高尔夫比赛的树林砍树,树林由一个 m x n 的矩阵表示, 在这个矩阵中: 0 表示障碍,无法触碰 1 表示地面,可以行走 比 1 大的数 表示有树的单元格,
2022-03-24:你被请来给一个要举办高尔夫比赛的树林砍树,树林由一个 m x n 的矩阵表示, 在这个矩阵中: 0 表示障碍,无法触碰 1 表示地面,可以行走 比 1 大的数 表示有树的单元格, ...
- phpstudy-sqlilabs-less-14
题目:POST - Double Injection - Single quotes- String - with twist 和上关一模一样 uname=1"or 1=1 #&pa ...
- 02、SECS-II 通信协议介绍
这里我们先学习 SECS-II 协议,给我的感受是先学完 SECS-II 协议,再去学习 SECS-I 和 HSMS 协议更加容易理解,所以这里我先介绍 SECS-II 协议. 文章的内容基本上来自参 ...