头条二面:你们公司怎么处理 MySQL 的 Binlog 日志?

沙海 2021年3月17日02:37:31杂谈 Java评论26字数 1749阅读5分49秒阅读模式
摘要

速读摘要

速读摘要文章源自JAVA秀-https://www.javaxiu.com/4676.html

Databus是一种低延迟变化捕获系统,已成为LinkedIn数据处理管道不可或缺的一部分。Databus解决了可靠捕获,流动和处理主要数据更改的基本要求。从更改流中的任意时间点开始消耗,包括整个数据的完全引导功能。文章源自JAVA秀-https://www.javaxiu.com/4676.html

原文约 1974 | 图片 11 | 建议阅读 4 分钟 | 评价反馈文章源自JAVA秀-https://www.javaxiu.com/4676.html

头条二面:你们公司怎么处理 MySQL 的 Binlog 日志?

点击关注 ? Java面试那些事儿 文章源自JAVA秀-https://www.javaxiu.com/4676.html

点击关注下方公众号,Java面试资料 都在这里头条二面:你们公司怎么处理 MySQL 的 Binlog 日志?文章源自JAVA秀-https://www.javaxiu.com/4676.html

文章源自JAVA秀-https://www.javaxiu.com/4676.html

来源:https://sourl.cn/SsuwAc文章源自JAVA秀-https://www.javaxiu.com/4676.html

文章源自JAVA秀-https://www.javaxiu.com/4676.html

头条二面:你们公司怎么处理 MySQL 的 Binlog 日志?正文如下:

文章源自JAVA秀-https://www.javaxiu.com/4676.html
  • Canal文章源自JAVA秀-https://www.javaxiu.com/4676.html

  • Maxwell文章源自JAVA秀-https://www.javaxiu.com/4676.html

  • Databus文章源自JAVA秀-https://www.javaxiu.com/4676.html

  • 阿里云的数据传输服务DTS文章源自JAVA秀-https://www.javaxiu.com/4676.html

# Canal

文章源自JAVA秀-https://www.javaxiu.com/4676.html

定位:基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了mysql。文章源自JAVA秀-https://www.javaxiu.com/4676.html

文章源自JAVA秀-https://www.javaxiu.com/4676.html

原理:文章源自JAVA秀-https://www.javaxiu.com/4676.html

头条二面:你们公司怎么处理 MySQL 的 Binlog 日志?文章源自JAVA秀-https://www.javaxiu.com/4676.html

头条二面:你们公司怎么处理 MySQL 的 Binlog 日志?文章源自JAVA秀-https://www.javaxiu.com/4676.html

整个parser过程大致可分为几步:文章源自JAVA秀-https://www.javaxiu.com/4676.html

文章源自JAVA秀-https://www.javaxiu.com/4676.html

  • Connection获取上一次解析成功的位置(如果第一次启动,则获取初始制定的位置或者是当前数据库的binlog位点)文章源自JAVA秀-https://www.javaxiu.com/4676.html

  • Connection建立连接,发生BINLOG_DUMP命令文章源自JAVA秀-https://www.javaxiu.com/4676.html

  • Mysql开始推送Binary Log文章源自JAVA秀-https://www.javaxiu.com/4676.html

  • 接收到的Binary Log通过Binlog parser进行协议解析,补充一些特定信息文章源自JAVA秀-https://www.javaxiu.com/4676.html

  • 传递给EventSink模块进行数据存储,是一个阻塞操作,直到存储成功文章源自JAVA秀-https://www.javaxiu.com/4676.html

  • 存储成功后,定时记录Binary Log位置文章源自JAVA秀-https://www.javaxiu.com/4676.html

头条二面:你们公司怎么处理 MySQL 的 Binlog 日志?文章源自JAVA秀-https://www.javaxiu.com/4676.html

  • 数据过滤:支持通配符的过滤模式,表名,字段内容等文章源自JAVA秀-https://www.javaxiu.com/4676.html

  • 数据路由/分发:解决1:n (1个parser对应多个store的模式)文章源自JAVA秀-https://www.javaxiu.com/4676.html

  • 数据归并:解决n:1 (多个parser对应1个store)文章源自JAVA秀-https://www.javaxiu.com/4676.html

  • 数据加工:在进入store之前进行额外的处理,比如join文章源自JAVA秀-https://www.javaxiu.com/4676.html

# Maxwell

文章源自JAVA秀-https://www.javaxiu.com/4676.html

头条二面:你们公司怎么处理 MySQL 的 Binlog 日志?文章源自JAVA秀-https://www.javaxiu.com/4676.html

文章源自JAVA秀-https://www.javaxiu.com/4676.html

canal 由Java开发,分为服务端和客户端,拥有众多的衍生应用,性能稳定,功能强大;canal 需要自己编写客户端来消费canal解析到的数据。文章源自JAVA秀-https://www.javaxiu.com/4676.html

文章源自JAVA秀-https://www.javaxiu.com/4676.html

maxwell相对于canal的优势是使用简单,它直接将数据变更输出为json字符串,不需要再编写客户端。文章源自JAVA秀-https://www.javaxiu.com/4676.html

文章源自JAVA秀-https://www.javaxiu.com/4676.html

# Databus

文章源自JAVA秀-https://www.javaxiu.com/4676.html

Databus是一种低延迟变化捕获系统,已成为LinkedIn数据处理管道不可或缺的一部分。Databus解决了可靠捕获,流动和处理主要数据更改的基本要求。文章源自JAVA秀-https://www.javaxiu.com/4676.html

文章源自JAVA秀-https://www.javaxiu.com/4676.html

Databus提供以下功能:文章源自JAVA秀-https://www.javaxiu.com/4676.html

  • 源与消费者之间的隔离文章源自JAVA秀-https://www.javaxiu.com/4676.html

  • 保证按顺序和至少一次交付具有高可用性文章源自JAVA秀-https://www.javaxiu.com/4676.html

  • 从更改流中的任意时间点开始消耗,包括整个数据的完全引导功能。文章源自JAVA秀-https://www.javaxiu.com/4676.html

  • 分区消费文章源自JAVA秀-https://www.javaxiu.com/4676.html

  • 源一致性保存文章源自JAVA秀-https://www.javaxiu.com/4676.html

头条二面:你们公司怎么处理 MySQL 的 Binlog 日志?文章源自JAVA秀-https://www.javaxiu.com/4676.html

# 阿里云的数据传输服务DTS

文章源自JAVA秀-https://www.javaxiu.com/4676.html

数据传输服务(Data Transmission Service,简称DTS)是阿里云提供的一种支持 RDBMS(关系型数据库)、NoSQL、OLAP 等多种数据源之间数据交互的数据流服务。DTS提供了数据迁移、实时数据订阅及数据实时同步等多种数据传输能力,可实现不停服数据迁移、数据异地灾备、异地多活(单元化)、跨境数据同步、实时数据仓库、查询报表分流、缓存更新、异步消息通知等多种业务应用场景,助您构建高安全、可扩展、高可用的数据架构。文章源自JAVA秀-https://www.javaxiu.com/4676.html

文章源自JAVA秀-https://www.javaxiu.com/4676.html

优势:数据传输(Data Transmission)服务 DTS 支持 RDBMS、NoSQL、OLAP 等多种数据源间的数据传输。它提供了数据迁移、实时数据订阅及数据实时同步等多种数据传输方式。相对于第三方数据流工具,数据传输服务 DTS 提供更丰富多样、高性能、高安全可靠的传输链路,同时它提供了诸多便利功能,极大得方便了传输链路的创建及管理。文章源自JAVA秀-https://www.javaxiu.com/4676.html

文章源自JAVA秀-https://www.javaxiu.com/4676.html

个人理解:就是一个消息队列,会给你推送它包装过的sql对象,可以自己做个服务去解析这些sql对象。文章源自JAVA秀-https://www.javaxiu.com/4676.html

文章源自JAVA秀-https://www.javaxiu.com/4676.html

免去部署维护的昂贵使用成本。DTS针对阿里云RDS(在线关系型数据库)、DRDS等产品进行了适配,解决了Binlog日志回收,主备切换、VPC网络切换等场景下的订阅高可用问题。同时,针对RDS进行了针对性的性能优化。出于稳定性、性能及成本的考虑,推荐使用。文章源自JAVA秀-https://www.javaxiu.com/4676.html

热门推荐:妈蛋!空降的老大叫咱们写得代码全部都得要Mock,看来得996了~刷爆全网:一个中科大差生的8年程序员工作总结~工程师姓什么很重要!别再叫我“X工”!!!
文章源自JAVA秀-https://www.javaxiu.com/4676.html
继续阅读
速蛙云 - 极致体验,强烈推荐!!!购买套餐就免费送各大视频网站会员!快速稳定、独家福利社、流媒体稳定解锁!速度快,全球上网、视频、游戏加速、独立IP均支持!基础套餐性价比很高!这里不多说,我一直正在使用,推荐购买:https://www.javaxiu.com/59919.html
weinxin
资源分享QQ群
本站是JAVA秀团队的技术分享社区, 会经常分享资源和教程; 分享的时代, 请别再沉默!
沙海
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定