CDCchange data capture变更数据捕获Canal阿里开源GitHub29.7K Star7.6K Fork、Java语言开发、MySQL binlog增量订阅和消费组件。基于数据库增量日志解析提供增量数据订阅消费。原理Canal模拟MySQL slave的交互协议伪装为MySQL slave向MySQL master发送dump协议MySQL master收到dump请求推送Binary Log给slave即CanalCanal解析Binary Log对象原始为Byte流流程EventParser过程Connection获取上一次解析成功的位置第一次启动则获取初始位置或当前数据库的binlog位点Connection建立连接发送BINLOG_DUMP命令MySQL开始推送Binary Log接收到的Binary Log通过Binlog parser进行协议解析补充一些特定信息传递给EventSink模块进行数据存储是一个阻塞操作直到存储成功存储成功后定时记录Binary Log位置数据过滤支持通配符的过滤模式表名字段内容等数据路由/分发解决1:n1个parser对应多个store的模式数据归并解决n:1多个parser对应1个store数据加工在进入store之前进行额外的处理如joinMaxwell官网即官方文档开源GitHub4.3K Star1K ForkMySQL的CDC变更数据捕获工具更轻量更简单的Canal、debezium等项目替代品可读取MySQL二进制日志并将数据变更以JSON格式发布到Kafka等MQ平台适用于多种场景如ETL处理、审计日志记录、缓存管理、搜索索引构建和服务间通信等支持在命令行中使用也提供Docker容器方式启动。工作原理Databus领英开源GitHub3.7K Star738 Fork、Java编写、源无关、分布式低延迟CDC系统已成为LinkedIn数据处理管道不可或缺的一部分。Databus解决可靠捕获流动和处理主要数据更改的基本要求。代码库已无人维护最后一次提交停留在20年5月7日。功能源与消费者之间的隔离保证按顺序和至少一次交付具有高可用性从更改流中的任意时间点开始消耗包括整个数据的完全引导功能。分区消费源一致性保存DTS数据传输服务Data Transmission Service阿里云提供的一种支持 RDBMS、NoSQL、OLAP 等多种数据源之间数据交互的数据流服务。DTS提供数据迁移、实时数据订阅及数据实时同步等多种数据传输能力可实现不停服数据迁移、数据异地灾备、异地多活(单元化)、跨境数据同步、实时数据仓库、查询报表分流、缓存更新、异步消息通知等多种业务应用场景助您构建高安全、可扩展、高可用的数据架构。优势DTS 支持 RDBMS、NoSQL、OLAP 等多种数据源间的数据传输。提供数据迁移、实时数据订阅及数据实时同步等多种数据传输方式。相对于第三方数据流工具数据传输服务 DTS 提供更丰富多样、高性能、高安全可靠的传输链路同时它提供了诸多便利功能极大地方便传输链路的创建及管理。免去部署维护的昂贵使用成本。DTS针对阿里云RDS、DRDS等产品进行适配解决Binlog日志回收主备切换、VPC网络切换等场景下的订阅高可用问题。出于稳定性、性能及成本的考虑推荐使用。DBSyncer简称dbs一款开源GitHub934 Star150 Fork代码同步托管于Gitee的数据同步中间件提供MySQL、Oracle、SQL Server、PG、ES、Kafka、File、SQL等同步场景。支持上传插件自定义同步转换业务提供监控全量和增量数据统计图、应用性能预警等。缺点单机版的数据同步中间件数据持久化也是单机文件存储CDC方式试下是定时任务短时间扫描拉取Binlog解析同步实现不具备分布式大型数据集成同步处理的能力实战基于Docker快速体验部署dockerrun-d\--namedbsyncer\-p18686:18686\-eTZAsia/Shanghai\-v/data/dbsyncer/app:/app\crazylife/dbsyncer-web:latest浏览器打开http://localhost:18686用户名密码都是admin/adminMongoShake阿里Nosql团队开源GitHub1.1K Star277 ForkGo编写、通用型数据同步平台主要用于MongoDB的数据同步到Kafka或其他MongoDB数据库通过读取MongoDB集群的Oplog操作日志对MongoDB的数据进行复制后续通过操作日志实现特定需求。通过操作日志提供日志数据订阅消费PUB/SUB功能可通过SDK、Kafka、MetaQ等方式灵活对接以适应不同场景(如日志订阅、数据中心同步、Cache异步淘汰等)。集群数据同步是其中核心应用场景通过抓取oplog后进行回放达到同步目的实现灾备和多活的业务场景。https://mp.weixin.qq.com/s/OUbC3wOek6zUITHxXuVvdw