Github项目

alibaba/canal:阿里巴巴MySQL binlog增量订阅&消费组件

canal是阿里巴巴的MySQL binlog增量订阅与消费组件。早期因双机房部署需求发展而来,它基于MySQL数据库增量日志解析提供增量数据订阅和消费。涵盖数据库镜像、实时备份、索引构建...

标签:

【Github】项目名:alibaba/canal – 阿里巴巴MySQL binlog增量订阅&消费组件

项目简介

canal主要用于基于MySQL数据库增量日志解析,提供增量数据订阅和消费。早期因阿里巴巴杭州和美国双机房部署有跨机房同步需求,最初基于业务trigger获取增量变更,自2010年起逐步尝试通过数据库日志解析获取增量变更进行同步,从而衍生出众多数据库增量订阅和消费业务,如数据库镜像、数据库实时备份、索引构建和实时维护(拆分异构索引、倒排索引等)、业务cache刷新、带业务逻辑的增量数据处理等。其支持源端MySQL多个版本,包括5.1.x、5.5.x、5.6.x、5.7.x、8.0.x。

工作原理

基于MySQL主备复制原理,MySQL master将数据变更写入二进制日志(其中记录叫二进制日志事件,可通过show binlog events查看),MySQL slave将master的binary log events拷贝到中继日志,再重放其中事件反映到自己的数据。canal模拟MySQL slave交互协议,伪装成MySQL slave向MySQL master发送dump协议,master收到请求后推送binary log给slave(即canal),canal解析binary log对象(原始为byte流)。

重要版本更新说明

canal 1.1.x版本在性能与功能层面有较大突破,整体性能测试&优化提升了150%,原生支持prometheus监控、kafka消息投递、aliyun rds的binlog订阅(解决自动主备切换/oss binlog离线解析)、docker镜像。canal 1.1.4版本迎来最重要的WebUI能力,引入canal – admin工程,支持面向WebUI的canal动态管理能力,支持配置、任务、日志等在线白屏运维能力。

客户端相关

canal特别设计了client – server模式,交互协议使用protobuf3.0,client端可采用不同语言实现不同的消费逻辑,有java、c#、go、php、Python、Rust、Nodejs等多种语言的客户端可供使用。canal作为MySQL binlog增量获取和解析工具,可将变更记录投递到MQ系统(如Kafka/RocketMQ),借助MQ多语言能力。

项目总结

canal是一个功能强大的MySQL binlog增量订阅和消费组件,在阿里巴巴内部有着丰富的业务需求衍生历程,并且不断更新发展,在很多数据库相关业务场景下有着重要作用。欢迎大家在评论区留言,一起参与对该项目的讨论。

项目地址

GitHub链接直达

数据统计

数据评估

alibaba/canal:阿里巴巴MySQL binlog增量订阅&消费组件浏览人数已经达到6,如你需要查询该站的相关权重信息,可以点击"5118数据""爱站数据""Chinaz数据"进入;以目前的网站数据参考,建议大家请以爱站数据为准,更多网站价值评估因素如:alibaba/canal:阿里巴巴MySQL binlog增量订阅&消费组件的访问速度、搜索引擎收录以及索引量、用户体验等;当然要评估一个站的价值,最主要还是需要根据您自身的需求以及需要,一些确切的数据则需要找alibaba/canal:阿里巴巴MySQL binlog增量订阅&消费组件的站长进行洽谈提供。如该站的IP、PV、跳出率等!

关于alibaba/canal:阿里巴巴MySQL binlog增量订阅&消费组件特别声明

本站链氪巴士提供的alibaba/canal:阿里巴巴MySQL binlog增量订阅&消费组件都来源于网络,不保证外部链接的准确性和完整性,同时,对于该外部链接的指向,不由链氪巴士实际控制,在2024年12月5日 上午12:00收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,链氪巴士不承担任何责任。

相关导航

暂无评论

暂无评论...