Databus

Databus 是与源无关的分布式变更数据捕获系统。

在 Internet 体系结构中,数据系统通常被分类为作为用户生成写入的主要存储库的“真相源”系统,以及服务于读取和其他复杂查询的派生数据存储或索引。 这些二级存储中的数据通常通过自定义转换从主数据派生,有时涉及到由业务逻辑驱动的复杂处理。

类似地,缓存层中的数据来自对主数据存储的读取,但在主数据发生突变时需要使其失效或刷新。从这些数据体系结构中产生的一个基本需求是需要可靠地捕获、流和处理主要数据更改。

我们已经构建了 Databus,一个与源代码无关的分布式变化数据捕获系统,它是 LinkedIn 数据处理管道的组成部分。

Databus 传输层提供了在较低毫秒内的延迟,并在支持无限的回看功能和丰富的订阅功能的同时,在每台服务器上每秒处理数千个事件的吞吐量。

特性

  • 来源独立

Databus支持多种数据来源的变更抓取,包括Oracle和MySQL。

  • 可扩展、高度可用

Databus能扩展到支持数千消费者和事务数据来源,同时保持高度可用性。

  • 事务按序提交

Databus能保持来源数据库中的事务完整性,并按照事务分组和来源的提交顺寻交付变更事件。

  • 低延迟、支持多种订阅机制

数据源变更完成后,Databus能在微秒级内将事务提交给消费者。同时,消费者使用Databus中的服务器端过滤功能,可以只获取自己需要的特定数据。

  • 无限回溯

这是Databus最具创新性的组件之一,对消费者支持无限回溯能力。

当消费者需要产生数据的完整拷贝时(比如新的搜索索引),它不会对主OLTP数据库产生任何额外负担,就可以达成目的。

当消费者的数据大大落后于来源数据库时,也可以使用该功能。

参考资料

http://tech.lede.com/2017/05/24/rd/server/databus/

https://zhubingxu.me/2017/12/19/databus-demo/

https://www.jianshu.com/p/b89c2ff2440e