01 背景
在线交易服务平台目的是减轻核心系统计算压力和核心性能负荷压力,通过该平台可以将核心系统的交易数据实时捕获、实时计算加工、计算结果保存于SequoiaDB中。并能实时的为用户提供在线交易查询服务。在线交易服务平台基于实时处理架构设计,通过将核心系统的数据变更,实时的同步到在平台数据库,从而达到数据实时复制,及向外提供服务的目的。
本文旨在分析实时处理系统的各技术原理及整体架构。首先介绍该架构所用到的技术原理,然后再介绍整体架构实现,并从数据采集层,实时处理层,数据存储层等方面进行详细分析与说明。
02 技术需求
2.1 如何构建数据库日志文件实时采集系统
该平台需要从银行多个交易系统中,实时获取客户余额变动和交易明细数据。该过程要求数据采集组件能够提供高性能、高可用性、高安全可靠性的实时采集、传输功能,因此我们采用了具备这些特性的 OGG 和 CDC 采集框架。
CDC(Change Data Capture):基于数据库日志实现对数据源变化的实时捕获,并且实时传输到目标端。CDC组件通过读取各个业务生产系统数据库的日志文件捕获得到更新(插入、删除、更新)的交易记录信息数据,经过行列过滤,字符编码转换后由 TCP/IP 发送给目标端,目标端接收到源端数据后,经过数值转换,字符编码转换,冲突检测后将变更数据通过 Confluent Rest API 把数据传送到 Kafka,将数据直接进行持久化之前进行消息队列的数据缓存。
OGG(Oracle GoldenGate)是一种基于日志的挖掘的技术,它通过解析源数据库在线日志或归档日志获得数据的增量变化后,再将这些变化的数据传输到 Kafka 中,Kafka将数据直接进行持久化之前进行消息队列的数据缓存。
2.2 如何保证对海量数据的实时处理
相比其他实时处理框架如 Spark 来说,Storm 的实时性较高,延时低,而在线交易服务平台实时性要求比较高,要求毫秒级的数据处理。Storm 作为纯实时的计算框架,其实时计算能力能达到毫秒级。
Storm 是基于数据流的实时处理系统,提供了大吞吐量的实时计算能力。在一条数据到达系统的时候,系统会立即在内存中进行相应的计算,因此 Storm 适合要求实时性较高的数据分析场景。此外,Storm 支持分布式并行计算,即使海量数据大量涌入,也能得到实时处理。Storm 还具备以下几个优点:低延迟、高可用、分布式、可扩展、数据不丢失,并且提供简单容易理解的接口,便于开发。
2.3 如何实现采集层与实时处理层的对接
在采集层和实时处理层之间,往往需要加一个消息队列机制,用于实现采集层与实时处理层的解耦,并缓存需要实时