实时数据订阅与分发系统可以将业务数据源变更实时分发分发到消息总线上,并维护消息的统一格式,提供通用的客户端框架供消息生产者与下游业务接入。
一般能用于以下场景:索引构建:MySQL到ES
缓存管理:MySQL到Redis或本地cache
数据库镜像
实时备份
价格变化等重要业务信息订阅
实时数据订阅与分发系统一般都有如下几个核心模块构成:Change Data Capture(变更数据抓取,CDC):负责实时抓取业务数据源的变更消息;
消息中间件:支撑消息的分发与堆积;
Client:为生产者与消费者提供统一的接入途径,解决序列化、offset管理、监控报警等共性问题。
本文以Databus(
https://github.com/linkedin/databus)为例,来说明一个实时数据订阅与分发系统的基本构成与原理。
1. 简介
Databus 是一个实时的低延迟数据抓取系统, 它抓取业务数据源的实时变更, 并发送到中继(Databus Relay), 下游业务从中继获得变更数据进行业务处理:
根据Linkdin的介绍, Databus有以下特性:来源独立:Databus支持多种数据来源的变更抓取,包括Oracle和MySQL。
可扩展、高可用:Databus能扩展到支持数千消费者和事务数据来源,同时保持高度可用性。
事务按序提交:Databus能保持来源数据库中的事务完整性,并按照事务分组和来源的提交顺序交付变更事件。
低延迟:数据源变更完成后,Databu