Databuscanal对比
Databus和canal都能够提供实时从数据库获取变更,并提供给下游的实时消费流的功能。
本文针对两个系统实现和应用上的不同点,做了一个简单的对比:
对比项 |
Databus |
canal |
结论 |
|
---|---|---|---|---|
支持的数据库 |
mysql, oracle |
mysql(据说内部版本支持oracle) |
Databus目前支持的数据源更多 |
|
业务开发 |
业务只需要实现事件处理接口 |
事件处理外,需要处理ack/rollback, 反序列化异常等 |
Databus开发接口用户友好度更高 |
|
服务模型 |
relay |
relay可以同时服务多个client |
一个server instance只能服务一个client (受限于server端保存拉取位点) |
Databus服务模式更灵活 |
client |
client可以拉取多个relay的变更, 访问的relay可以指定拉取某些表某些分片的变更 |
client只能从一个server拉取变更, 而且只能是拉取全量的变更 |
||
可扩展性 |
client可以线性扩展,处理能力也能线性扩展 (Databus可识别pk,自动做数据分片) |
client无法扩展 |
Databus扩展性更好 |
|
可用性 |
client ha |
client支持cluster模式,每个client处理一部分数据, 某个client挂掉,其他client自动接管对应分片数据 |
主备client模式,主client消费, 如果主client挂掉,备client可自动接管 |
Databus实时热备方案更成熟 |
relay/server ha |
多个relay可连接到同一个数据库, client可以配置多个relay,relay故障启动切换 |
主备relay模式,relay通过zk进行failover |
canal主备模式对数据库影响更小 |
|
故障对上游 数据库的影响 |
client故障,bootstrap会继续拉取变更, client恢复后直接从bootstrap拉取历史变更 |
client故障会阻塞server拉取变更, client恢复会导致server瞬时从数据库拉取大量变更 |
Databus本身的故障对数据库影响几乎为0 |
|
系统状态监控 |
程序通过http接口将运行状态暴露给外部 |
暂无 |
Databus程序可监控性更好 |
|
开发语言 |
java,核心代码16w,测试代码6w |
java,4.2w核心代码,6k测试代码 |
Databus项目更成熟,当然学习成本也更大 |
Databuscanal对比相关推荐
- 不同编程语言之间的具体实现对比
不同语言之间的具体实现对比 官网地址:https://programming-idioms.org/ 这个网站的核心存储部分代码是开源的,使用 Go 语言实现.源码地址: https://github ...
- 正向最大匹配 和逆向最大匹配对比比较
正向最大匹配法 &逆向最大匹配法 原理对比 下面介绍的分词算法中最简单的正向最大匹配和反向最大匹配. 这种两种方法都是机械分词方法,它是按照一定的策略将待分析的汉字串与一个"充分大的 ...
- JDBC与数据库连接工具对比分析
JDBC 使用步骤: 注册数据库驱动 通过DriverManager获取数据库连接 通过Connection对象获取Statement对象 使用Statement执行SQL语句 操作ResultSet ...
- GeforceRTX系列参数对比
GeforceRTX系列参数对比
- YOLO、SSD、FPN、Mask-RCNN检测模型对比
YOLO.SSD.FPN.Mask-RCNN检测模型对比 一.YOLO(you only look once) YOLO 属于回归系列的目标检测方法,与滑窗和后续区域划分的检测方法不同,他把检测任务当 ...
- RCNN系列、Fast-RCNN、Faster-RCNN、R-FCN检测模型对比
RCNN系列.Fast-RCNN.Faster-RCNN.R-FCN检测模型对比 一.RCNN 问题一:速度 经典的目标检测算法使用滑动窗法依次判断所有可能的区域.本文则预先提取一系列较可能是物体的候 ...
- TCP/UDP对比总结
在计算机网络中,有三种体系结构划分方式,第一种是OSI七层协议体系结构,由上到下分别是:应用层,表示层,会话层,运输层,网络层,数据链路层,物理层:第二种是TCP/IP四层协议,由上到下分别是:应用层 ...
- XML和JSON数据格式对比
概念 XML 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语 ...
- 对比两个同类型的泛型集合并返回差异泛型集合 ——两个List类名的比较
1: /// <summary> 2: /// 对比两个同类型的泛型集合并返回差异泛型集合 3: /// </summary> 4: /// <typeparam nam ...
最新文章
- Microsoft Visual C++ 14.0 is required
- 对程序错误的处理——Windows核心编程学习手札之一
- Flutter一切皆widget但是不要将所有东西放入一个widget
- 学完Java后找工作难吗?需要满足什么条件?
- python中的def语句_Python def 函数
- 基于 Nginx 的 HTTPS 性能优化实践
- Android Studio安装问题及填坑
- 【Java从0到架构师】MySQL 基础
- Markdown笔记简明教程
- Exchange 2010升级到Exchange 2016汇总
- 网络七层协议和TCP/IP五层协议
- cmake 返回上层目录
- 真假马云Deciphering Jack Ma
- java合并果子_经典题-提高组2004年 合并果子
- 如何使用FSMC让OLED屏幕刷新率飞起来?
- 微信官宣:一大波 2022 新年红包封面来了,这波太秀了!!
- 观看2022年卡塔尔世界杯的感想
- 咕咚要和keep们刚正面,闪电战还是持久战?
- Fisher线性判别 模式识别 例题
- 人脸性别识别文献阅读笔记(3)
热门文章
- 1数据类型、ER图、范式
- Java 如何模拟真正的并发请求?
- PDF文件带有密码如何解除?
- 矩阵方程求解内置函数
- trainging contest#1(2011大连现场赛)C BY bly
- 用python玩转数据作业答案_大学mooc用Python玩转数据课后答案
- ZYNQ7010教程(一)PL部分
- 邮票面值设计java,[洛谷P1021][题解]邮票面值设计
- CustomerList
- chrome-linux/chrome: error while loading shared libraries: libnss3.so解决方法