canalBinlog 的增量订阅和消费组件
canal 是阿里巴巴 MySQL 数据库 Binlog 的增量订阅&消费组件。
名称:canal [kə'næl]
译意: 水道/管道/沟渠
语言: 纯java开发
定位: 基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL
早期,阿里巴巴 B2B 公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于 trigger 的方式获取增量 变更,不过从 2010 年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务,从此开 启了一段新纪元。ps. 目前内部使用的同步,已经支持 MySQL 5.x 和 Oracle 部分版本的日志解析
基于日志增量订阅&消费支持的业务:
-
数据库镜像
-
数据库实时备份
-
多级索引 (卖家和买家各自分库索引)
-
search build
-
业务cache刷新
-
价格变化等重要业务消息
Canal 工作原理:
原理相对比较简单:
-
canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议
-
mysql master收到dump请求,开始推送binary log给slave(也就是canal)
-
canal解析binary log对象(原始为byte流)
评论
自习室.30 使用 takeUntil 操作符管理 Angular 组件的订阅
在上一篇文章中,有个知友评论说是要 takeUntil 来管理订阅更加清晰明了,那我们就探探究竟。在 Rxjs 中,可以使用 takeUntil 来控制另外一个 Observable 对象数据的产生。使用 takeUntil,上游的数据直接转手给下游...
信使
0
WeexiOSKitWeex 的 iOS 组件和模型
WeexiOSKitWeexiOSKit主要是扩展了一些iOS的Component和Module,这样在weex端就可以很好的使用了。Component包括segmented-control(UISe
WeexiOSKitWeex 的 iOS 组件和模型
0
PurchasesiOS 购买和订阅跟踪系统的客户端
Purchases是 RevenueCat 订阅和购买跟踪系统的客户端。它是一个开源框架,提供了一个包装器StoreKit和RevenueCat后端,以便在Swift或Objective-C轻松实现应
PurchasesiOS 购买和订阅跟踪系统的客户端
0