架构分析—LinkedIn出品的databus

来自:http://blog.sina.com.cn/s/blog_6c9b83990101bbzq.html

一、关于databus
        LinkedIn 于2月26日开源了其低延时变化数据捕获系统Databus,该系统可以在MySQL以及Oracle数据源上捕获数据,当下LinkedIn只开源了Oracle上的连接器。Databus作为LinkedIn生态系统中的一致性保障组件,在低延时的情况下仍然具有高有效性;而其最大的特点莫过于无限制恢复k能力及丰富的数据深度处理功能。

二、基于databus的数据系统架构
        对数据系统对功能进行了有限的分割,传统的数据库被用来作简单的数据存储,有效的保证了数据一致性(包含事务);通过毫秒级的事件转发,可以按业务需求构建索引或多个数据副本,以支撑复杂的业务需求;保证顺序的数据变化事件日志为整个数据系统提供的不限制的数据恢复能力。


三、databus系统组成

Databus Relays

1、捕获数据库行变化,在内存中打包为数据变化事件;
2、监听Clients的请求,将数据变化事件发送给Client。

Databus Clients

1、检查数据变化事件,并回调业务逻辑;
2、如挂掉,从databus bootstrap server读取挂掉后的所有数据变化事件;
3、新的client加入,先从databus bootstrapserver读取数据,之后变为处理最近的数据变化事件;
4、一个client可以处理全部的事件流,也可多个client分块处理事件流。

Databus Bootstrap Producers

1、bootstrap producer是一个特殊的client;
2、从relay接收新的数据变化事件;
3、把这些事件存储起来(如MYSQL);
4、存储的事件用于新client的加入,或都client挂掉后的恢复。

Databus Bootstrap Servers

1、监听client的请求,把存储的事件发送给client。

项目地址: https://github.com/linkedin/databus

你可能感兴趣的:(海量架构设计)