首页 > 数据库 >【IT老齐014】阿里Canal实现MySQL异构数据同步

【IT老齐014】阿里Canal实现MySQL异构数据同步

时间:2023-04-25 19:44:36浏览次数:44  
标签:Canal binlog 同步 老齐 014 sql 从库 数据

【IT老齐014】阿里Canal实现MySQL异构数据同步

场景

1682412429245

商户在后台系统添加数据,消费者需要在前台获取数据。这时候需要将后台的数据同步到es中。mysql的数据跟es存储的数据不一样,称为异构数据。

原始做法:团队A在java代码中新增mysql数据时,调用团队B的接口新增es商品数据。

缺点:

  • 协作中两个团队存在代码强耦合。
  • 扩展困难,第三方同步数据需要再次修改代码。

目标实现:数据能做到实时同步,团队间解耦,团队A不用多次调用接口。

数据监听

1682421097531

回顾mysql数据库的主从同步的功能。

用户新增、删除数据,主库执行完相应sql语句后,会将sql记录到binlog中。主库将binlog传给从库,从库接收到binlog的sql,将其写入relaylog(重放日志)中。从库执行relaylog的sql语句,就此实现同步。最后从库还会将执行relaylog的sql语句写入从库的binlog中。

1682422190711

Canal:阿里巴巴中间件,基于db增量日志解析,提供增量数据订阅和消费

引入Canal,相当于从库被Canal代替(假的mysql从库,主要监听主库的binlog,relaylog的sql语句)

通过Canal的配置文件,当获取新的数据时,自动触发指定的java代码完成同步工作。

应用解耦

1682421339382

引入MQ,解决解耦问题。
团队A新增删除数据,将消息发到MQ,其他团队从MQ订阅消息。

常见问题

  • 团队c来了之后只能从订阅MQ开始获取新数据,团队B之前已经获取的那些数据团队c怎么得到?
    • 历史离线同步
  • 主从同步失败的概率怎么判断,canal的可靠性能达到什么程度?
    • 按binlog偏移量重新同步
  • 如果源端表做了水平拆分和垂直拆分,canal能实现对这种表的合并处理吗?
    • 可以,原则上只要能挂Slave的,Canal都可以搞定
  • canal到kafka的消息是有序的,但假如kafka到消费端的消息由于网络原因从AB变成BA的话,该怎么办呢?
    • kafka,本身是支持有序的,但是有序的代价就是牺牲性能

标签:Canal,binlog,同步,老齐,014,sql,从库,数据
From: https://www.cnblogs.com/faetbwac/p/17353627.html

相关文章

  • 【IT老齐012】外键约束
    【IT老齐012】外键约束优点保证数据的完整性和一致性级联操作方便数据一致性交给数据库,代码量小缺点性能问题额外的数据一致性校验查询并发问题外键约束会启用行级锁主表写入时会进入阻塞级联删除问题多层级联删除会让数据变得不可控数据耦合问题数据库......
  • [oeasy]python0140_导入_import_from_as_namespace_
    导入import回忆上次内容上次学习了tryexcept 注意要点半角冒号缩进输出错误信息 有错就报告不要隐瞒否则找不到出错位置还可以用traceback把系统报错信息原样输出  但是代码量好多啊10多行了......
  • ZOJ Monthly, August 2014 ZOJ - 3806 计算几何+二分
    Atriangleisonethebasicshapesingeometry.It’sapolygonwiththreeverticesandthreesideswhicharelinesegments.AtrianglewithverticesA,B,CisdenotedΔABC.Anditsthreesides,BC,CA,ABareoftendenoteda,bandc.Theincircleofat......
  • 2014 Pacific Northwest Region Programming Contest—Division 2 Problem U — lim
    Incollegefootball,manydifferentsourcescreatealistoftheTop25teamsinthecountry.Sinceit’ssubjective,theselistsoftendiffer,butthey’reusuallyverysimilar.Yourjobistocomparetwooftheselists,anddeterminewheretheyaresimi......
  • ACM International Collegiate Programming Contest 2014 B SPFA 统计路径
    FloweryTrails!”()”*+,-).%”/)’0”122”1!2”342”522”!22”652”!42”72”72”5!2”!12”622”18!”162”!12”6”7”4”9”3”5”8”1”2”Inordertoattractmorevisitors,themanagerofanationalp......
  • ACM International Collegiate Programming Contest 2014 A dfs 好题
    GREAT+SWERC=PORTOWewanttohaveagreatSWERCatPortothisyearandweapproachedthischallengeinseveralways.Weevenframeditasawordadditionproblem,similartotheclassicSEND+MORE=MONEY,whereeachletterstandsforasingledigit(......
  • 【IT老齐010】CAP定理
    【IT老齐010】CAP定理分布式架构的基本理论。指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partitiontolerance)。C:更新操作成功后,所有节点在同一时间的数据完全一致。(复习:事务的一致性:事务前后的数据完整性保持一致)A:用户访问数据时,系统能......
  • 【IT老齐009】IP直连
    【IT老齐009】IP直连问题IP直连存在强耦合问题,因为业务更新可能发生代码修改,编译,部署,走流程等。线上建议用域名代替ip地址。解决方案内部DNS建立一个域名解析服务器,直接访问数据库ip对应的域名,域名解析服务器根据配置解析该域名对应的IP返回。优点IP地址迁移变得灵活,......
  • 【IT老齐003】数据垂直分表
    【IT老齐003】数据垂直分表水平分表范围法和hash法针对数据量大的存储问题垂直分表将一张大表按列切分多张小表分别存储,通过主外键关联查询数据基本情况基本数据单位为行,管理数据单位为页(默认大小16k),保存页的单位为区(默认大小1m,最大64个页)。根本原因innodb1.0......
  • UVA11014
     给定一个NxNxN的正方体,求出最多能选几个整数点。使得随意两点PQ不会使PQO共线。  F(k)#include<iostream>#include<cmath>#include<algorithm>usingnamespacestd;constintN=5e5;#defineintlonglongintb[N+2],pm[N+2],tot=0;intn;intpow3(intx){......