canbus速率_erie canal

2022-09-20 15:13:08 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

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项目更成熟,当然学习成本也更大

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/167187.html原文链接:https://javaforall.cn

0 人点赞