mysqlbinlog优缺点(MySQL Binlog 日志处理工具对比分析)
mysqlbinlog优缺点
MySQL Binlog 日志处理工具对比分析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进行了针对性的性能优化。出于稳定性、性能及成本的考虑,推荐使用。
以上就是mysql binlog 日志处理工具对比分析的详细内容,更多关于mysql binlog 日志处理工具的资料请关注开心学习网其它相关文章!
原文链接:https://mp.weixin.qq.com/s?__biz=MzU2NjIzNDk5NQ==&mid=2247496076&idx=1&sn=e8d0d79be730f49ec58554815b88444f
- mysql架构方案讲解(MySQL 搭建MHA架构部署的步骤)
- mysql千万级别数据查询优化(mysql千万级数据量根据索引优化查询速度的实现)
- mysql拼接多字段作为查询条件(Mysql 实现字段拼接的三个函数)
- visual studio怎么连接数据库(使用Visual Studio Code连接MySql数据库并进行查询)
- pythonmysql使用教程(Python异步操作MySQL示例使用aiomysql)
- mysql导出数据的方法
- mysql开启事务没有提交(MySQL 事务autocommit自动提交操作)
- centos如何安装mysql8.0版本(Centos7下安装MySQL8.0.23的步骤小白入门级别)
- mysql改root密码命令(MySQL root密码的重置方法)
- mysql如何删除外键约束数据(MySQL中外键的创建、约束以及删除)
- mysql返回结果集函数(mysql 判断是否为子集的方法步骤)
- MySql开启远程连接
- mysql主从复制忽略问题(MySQL复制问题的三个参数分析)
- mysql和navicat怎么用(如何用Navicat操作MySQL)
- mysql安装时服务无法启动(MySQL 实例无法启动的问题分析及解决)
- mysqldump属于哪种备份(MySQLDump的备份小技巧)
- 男人犯的错,为什么要女人来承担(为什么要女人来承担)
- 心理学 四个金蟾,哪个最招财 测你今生的运势有多棒(心理学四个金蟾)
- 吉善缘《聚宝金蟾》金蟾招财摆件 三足全铜蟾蜍客厅店铺开业礼品(吉善缘聚宝金蟾金蟾招财摆件)
- 招财化煞神兽,金蟾变了(招财化煞神兽金蟾变了)
- 26岁杨紫的白素贞遇上24岁鞠婧祎,哪个最美(26岁杨紫的白素贞遇上24岁鞠婧祎)
- 鞠婧祎和杨紫两种风格的女生,你心里谁比较美(鞠婧祎和杨紫两种风格的女生)
热门推荐
- mysql详细学习笔记(Mysql常用命令 详细整理版)
- docker镜像配置的挂载路径(解决docker挂载的目录无法读写问题)
- laravel线上如何调试(解决Laravel 不能创建 migration 的问题)
- 图片如何存放在mysql中(将图片保存到mysql数据库并展示在前端页面的实现代码)
- mysqlgroupby用法(MySQL Group by的优化详解)
- mysql 死锁原因(MySQL锁等待与死锁问题分析)
- dedecms关键词功能(DedeCms 5.7 代码高亮实现方法)
- python使用什么函数定义匿名函数(Python匿名函数及应用示例)
- mysql日期用法(MySQL DATE_ADD和ADDDATE函数实现向日期添加指定时间间隔)
- python面向对象编写案例(Python面向对象程序设计示例小结)