背景
在it存储系统中,可以分为OLTP/OLAP方案,其中OLTP用于主系统,OLAP用于离线分析系统;但是在追求实时性的系统中OLAP很难满足业务的需求;
因此我们需要OLTP的系统数据变更实时的同步到OLAP存储中;
方案
- 可以通过业务双写,同时写入2个存储中
- 事务控制复杂
- 通过数据库日志同步
介绍
通过拉取、解析database的变更日志形成事件缓存在环形buffer中,实现客户端低延迟的事件消费。
主要工作原理
- 解析database产生变更事件存储在relay buffer中;
- 监听relay buffer中的变更,持久化到log store中;
- client连接,databus启动server,从snap storage中读取数据用于client消费;
- client消费赶上relay buffer的window, client改为从relay buffer中获取数据;
特点
- 数据源和消费者隔离;
- 保证有序和至少一次投递;
- 从任意时间点开始消费;
- 分区消费;
和MQ模式的区别
mq模式是应用层的消息发布订阅
DataBus是database层的发布订阅
参考
https://github.com/linkedin/databus?spm=a2c4e.10696291.0.0.406419a4m6bDFk