51CTO诚邀您9月23号和秒拍/国美/美团元专家一路聊智能CDN的优化之路,抓紧时光哦!
1、定义
3.4、MQ方法
何谓数据异构,上周交易部分商品的同事过来做分享,又看到这个词,他的PPT琅绫擎是 数据库异构。其实我们以前做的工作,也是可以成为数据异构。比如我们将DB琅绫擎的数据持久化到REDIS琅绫擎去,就是一种数据异构的方法。如不雅要下个定义的话:把数据按需(数据构造、存取方法、存取情势)异地构建存储。
mysql主备复制实现道理
2、常见应用处景
分库分表中有一个最为常见的场景,为了晋升数据库的萌芽才能,我们都邑对数据库做分库分表操作。比如订单库,开端的时刻我们是按照订单ID维度去分库分表,那么后来的营业需求想按照商家维度去萌芽,比如我想萌芽某一个商家下的所有订单,就异常麻烦。这个时刻经由过程数据异构就能很好的解决此问题,比如下图

异构维度
总结起来大年夜概有以下几种场景
- 数据库镜像
- 数据库及时备份
- 多级索引
- search build(比如分库分表后的多维度数据萌芽)
- 营业cache刷新
- 价格、库存变更等重要营业消息
3、数据异构偏向

几种异构方法
在日常营业开辟中大年夜致可以分为以上几种数据去向,DB-DB这种方法,一般常见于分库分表后,聚号绫侨芽的时刻,比如我们按照订单ID去分库分表,那么这个时刻我们要按照用户ID去萌芽,萌芽这个用户下面的订单就异常不便利了,当然可以应用同一加到内存中去,但如许不太好。所以我们就可以用数据库异构的方法,从新按照用户ID的维度来分一个表,像在膳绫擎常见应用处景中介绍的那样。把数据异构到redis、elasticserach、slor中去要解决的问题跟按照多维度来萌芽的需求差不多。这些存储生成都有聚合的功能。当然同时也可以进步萌芽机能,应对大年夜拜访量,比如redis这种抗量银弹。
4、数据异构的常用办法
3.1、完全克隆
这个很简单就是将数据库A,全部拷贝一份到数据库B,如许的应用处景是离线统计跑义务脚本的时刻可以。缺点也很凸起,不实用于持续增长的数据。
3.2、标记同步
这个是营业场景比较简单的时刻,幻想情况下数据不会产生改变,比如日记数据,这个时刻可以去标记,比如时光戳,如许当产生故障的时刻还可以回溯到上一次同步点,开端从新同步数据。
3.3、BINLOG方法
经由过程及时的订阅mysql的binlog日记,花费到这些日记后,从新构建数据构造插入一个新的数据库或者是其他存储比如es、slor等等。订阅binlog日记可以比较好的能包管数据的一致性。
mysql主备(主大年夜)复制道理,大年夜上层来看,复制分成三步:
- master将改变记录到二进制日记(binary log)中(这些记录叫做二进制日记事宜,binary log events,可以经由过程show binlog events进行查看);
- slave将master的binary log events拷贝到它的中继日记(relay log);
- slave重做中继日记中的事宜,将改变反竽暌钩它本身的数据。
营业数据写入DB的同时,也发送MQ一份,也就是营业琅绫擎实现双写。这种方法比较简单,但也很难包管数据一致性,对简单的营业场景可以采取这种方法。
5、binlog和mq方法重点介绍
5.1、binlog
5.1.1、订阅binglog日记异构流程图

5.1.2、应用解释
binglog是数据的日记记录方法,每次对数据的操作都邑有binlog日记。如今开源的订阅binlog日记的组件,比如应用比较广泛的canal,它是阿里开源的基于mysql数据库binlog的增量订阅和花费组件。因为cannal办事器今朝攫取的binlog事宜只保存在内存中,并且只有一个canal客户端可以进行花费。所以如不雅须要多个花费客户端,可以惹人activemq或者kafka。如上图绿色虚线框部分。我们还须要确保全量比较来包管数据的一致性(canal+mq的重试机制根本可以包管写入异构库之后的数据一致性),这个时刻可以有一个全量同步WORKER法度榜样来包管,如上图深绿色部分。
5.1.3、canal的工作道理

再来看下canal的道理,如下图:

cannal实现道理比拟较较简单(参照膳绫擎的mysql主备复制实现道理):
4. canal模仿mysql slave的交互协定,假装本身为mysql slave,向mysql master发送dump协定
5. mysql master收到dump请求,开端推送binary log给slave(也就是canal)
6. canal解析binary log对象(原始为byte流)
canal异构方法
推荐阅读
51CTO诚邀您9月23号和秒拍/国美/美团元专家一路聊智能CDN的优化之路,抓紧时光哦! 【51CTO.com原创稿件】如不>>>详细阅读
本文标题:数据异构的武器 - BINLOG+MQ
地址:http://www.17bianji.com/lsqh/37404.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示