基于flink搭建流批一体的数据同步链路。
对来自mysql、离线数据、用户点击事件等数据同步到ES引擎,供业务方检索。这类需求可以归纳为两类:流处理和批处理。该系统分3部分构成:事件源产生、数据组装、数据写入。
事件源产生
①mysql
使用dts服务,监听增量数据变更,产生mq。
②odps
离线历史数据,用读文件的方式,发送mq。
以上全量+增量的方式,实现完整的业务数据源监听。
③用户行为
用户点击出价等行为,一样也发出mq。
事件源产生,将离线数据的批处理 转为mq,和流处理统一输出。对应flink的source
数据组装
根据配置的规则,对订阅的消息进行数据组装,主要是泛化调用dubbo,由业务方组装数据
数据组装是根据配置,用配置的方式泛化调用dubbo接口,使业务变更修改无需开发。对应flink的filterMap
- 数据写入
数据组装结果写入多个数据源。对应flink的sink
成果
稳定性
有guava限流服务,对于生产过快发生任务堆积时,用mq削峰填谷。消费者调并行度来水平扩容。
高可用
对于中间节点发生异常,flink的checkpoint机制保障任务重试到成功为止。对于脏数据,批处理的方式,重跑。