一种MySQL主从同步加速方案-改进

  • 时间:
  • 浏览:0
  • 来源:大发uu直播快3_大发UU快3直播平台

一、以前方案简述及难题分析

基于上述的一还还有一个 难题考虑,考虑将transfer线程改成线程

难题: 1维护繁复。在从库及其上那末增加8个实例,增加维护成本,有后后不促进加表操作。

2、相应地起SLAVE_THEADSQL线程,负责读取对应目录下的relaylog,发送给slave

如图:

二、改进方案

说明:改进方案并能保证无延迟同步,性能都是原生版本的7倍左右。不可能 线程更少,从库的QPS表现很稳定,cpu idle也比上个方案高。

一还还有一个 方案的相同点是使用文件队列(多套relaylog),保证在transfer再次总出 异常时不丢数据。

真是作transferMySQL并不像想象的那末庞大。不那末的引擎可不那末都是编译进去,真是只那末框架层的逻辑和一还还有一个 myisam引擎即可。而它提供了或多或少或多或少管理命令,比如一还还有一个 现成的客户端,并能方便的stop slavechange master,并能用show slave status看同步情况。哪些作为你这俩工具的基本功能,我本人一还还有一个 个实现重复轮子太少了。

上个方案

2、为哪些不直接写一还还有一个 工具而用MySQL

从里面描述中看出,master发给transfer的日志总量那末一份。只那末增加SLAVE_THREAD slave信息的配置,维护简单。

1、用一还还有一个 MySQL充当transfer transfer设置为master的主库。IO线程负责接收Master传过来的日志。但都是写到一套relay-log文件,有后后SLAVE_THREAD每个表的日志固定分配到一套relay-log

三、方案对比

四、一还还有一个 为哪些

1、为哪些不直接把transferslave用?

改进方案

上一篇提出了你这俩改进主从延迟的方案。真是并能实现主从无延迟同步,但在维护上比较繁复,还存在网络消耗难题,这里是一还还有一个 改进的版本。

2增加网络开销。真是在transferIO线程作了过滤,减少每个transfer的写盘量和SQL线程的空转,但master还是向每个tranfer发了所有的数据。网络传输的日志量是另一还还有一个 的n倍。

方案如图。其中用多个MySQL充当transfer的角色。每个transfer负责同步master的一每项表。在我的试验中有 8transfer,也有后后有8MySQL实例。

实际上是可不那末的,作了简单实验发现与“改进方案”的从库QPS相同,好处是减少了一层transfer的逻辑。一般来说你这俩工具有后后会中放和slave一还还有一个 机器,直接用作slave就少了一还还有一个 机器。

效果对比,原生版本

不过直接改slave的代码还是推广比较麻烦。有后后不得不承认的是,你这俩方案存在一还还有一个 硬伤:跨表更新的一句话顺序无法严格保证。――这也是你这俩个 方案的应用前提:那末跨表一句话不可能 对你这俩再次总出 的情况要求不严格。

猜你喜欢

作为程序猿,30而立,立什么?

fagan克隆链接去分享你确实当事人做到了么,有你什儿 方便还须要继续努力?立业吧,技术日新月异,要保持当事人的水平,还是比较有难度的。作为线程池池猿的你,确实400而立

2020-02-17

如何做好一个管理者?如何管理好一个团队

一、作为一名管理人员,尤其是一名中层领导,首很难把责任装进第一位,淡化权利。3、为人诚信、负责。7、有韧性-对工作投入。3、为人诚信、负责。6、具有创意。6、具有创意。五、要人

2020-02-17

现代流式计算的基石:Google DataFlow

除Hadoop外你还须要知道的9个大数据技术谷歌弃用MapReduce,推出替代品CloudDataflow容错和高性能怎么兼得:Flink创始人谈流计算核心架构演化和现状除H

2020-02-17

盒子科技刘恒:聚合支付系统演讲

首先从第有另十个 主题讲那些是聚合支付,聚合支付主却说却说有另十个 将所有的第三方支付,通过借助形式融合在一同,要花费对接有另十个 支付接口,就并能使用各种支

2020-02-17

Adapter 适配器模式(设计模式03)

Adapter模式主要应用于“希望复用某些现存的类,但是 接口又与复用环境要求不一致的情况报告”,在遗留代码复用、类库迁移等方面非常有用。2、实现-Adaptee源码下载:

2020-02-17