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://blog.csdn.net/weixin_…