Canal
定位:基于数据库增量日志解析,提供增量数据订阅&生产,目前次要反对了mysql。
原理:
canal模仿mysql slave的交互协定,假装本人为mysql slave,向mysql master发送dump协定
mysql master收到dump申请,开始推送binary log给slave(也就是canal)
canal解析binary log对象(原始为byte流)
整个parser过程大抵可分为几步:
Connection获取上一次解析胜利的地位(如果第一次启动,则获取初始制订的地位或者是以后数据库的binlog位点)
Connection建设连贯,产生BINLOG\_DUMP命令
Mysql开始推送Binary Log
接管到的Binary Log通过Binlog parser进行协定解析,补充一些特定信息
传递给EventSink模块进行数据存储,是一个阻塞操作,直到存储胜利
存储胜利后,定时记录Binary Log地位
数据过滤:反对通配符的过滤模式,表名,字段内容等
数据路由/散发:解决1:n (1个parser对应多个store的模式)
数据归并:解决n:1 (多个parser对应1个store)
数据加工:在进入store之前进行额定的解决,比方join
Maxwell
canal 由Java开发,分为服务端和客户端,领有泛滥的衍生利用,性能稳固,功能强大;canal 须要本人编写客户端来生产canal解析到的数据。
maxwell绝对于canal的劣势是应用简略,它间接将数据变更输入为json字符串,不须要再编写客户端。
Databus
Databus是一种低提早变动捕捉零碎,已成为LinkedIn数据处理管道不可或缺的一部分。Databus解决了牢靠捕捉,流动和解决次要数据更改的根本要求。Databus提供以下性能:
源与消费者之间的隔离
保障按程序和至多一次交付具备高可用性
从更改流中的任意工夫点开始耗费,包含整个数据的齐全疏导性能。
分区生产
源一致性保留
阿里云的数据传输服务DTS
数据传输服务(Data Transmission Service,简称DTS)是阿里云提供的一种反对 RDBMS(关系型数据库)、NoSQL、OLAP 等多种数据源之间数据交互的数据流服务。DTS提供了数据迁徙、实时数据订阅及数据实时同步等多种数据传输能力,可实现不停服数据迁徙、数据异地灾备、异地多活(单元化)、跨境数据同步、实时数据仓库、查问报表分流、缓存更新、异步音讯告诉等多种业务利用场景,助您构建高平安、可扩大、高可用的数据架构。
劣势
数据传输(Data Transmission)服务 DTS 反对 RDBMS、NoSQL、OLAP 等多种数据源间的数据传输。它提供了数据迁徙、实时数据订阅及数据实时同步等多种数据传输方式。绝对于第三方数据流工具,数据传输服务 DTS 提供更丰盛多样、高性能、高安全可靠的传输链路,同时它提供了诸多便当性能,极大得不便了传输链路的创立及治理。
集体了解:就是一个音讯队列,会给你推送它包装过的sql对象,能够本人做个服务去解析这些sql对象。
免去部署保护的低廉应用老本。DTS针对阿里云RDS(在线关系型数据库)、DRDS等产品进行了适配,解决了Binlog日志回收,主备切换、VPC网络切换等场景下的订阅高可用问题。同时,针对RDS进行了针对性的性能优化。出于稳定性、性能及老本的思考,举荐应用。
原文:https://www.gaodaima.com/weixin_…