通用对账平台的思考

2019-01-01  本文已影响0人  DreamsonMa

内外部项目存在多种对账环节,而且每个对账体系都存在一定代码重复,业务逻辑耦合性高。因此,可以考虑将对账环节抽象出一套通用对账系统。尽可能适配各种对账场景。

一些套路:将系统划分为数据接入层,数据处理层,数据管理平台。

数据接入层

数据接入层

为了便捷快速的接入数据。平台应该提供多种数据接入方式和易于扩展的持久化方式。

离线接入方式:文件提交接口支持,手工文件上传支持,适配第三方系统(微信、支付宝流水)。支持Excel、Cvs、Xml、Txt等文件模板解析处理。

在线接入方式:MQ或HTTP等方式接收数据。

持久话方式:推荐使用Hbase、mongoDB等NoSQL数据库存储数据,提高读写性能,和存储能力,并做出通用表结构设计方案。

对账管理平台

对账管理平台

对账数据都存在两张表上,如表A、表B。以此作为对账数据源。选择表A、表B的多个字段进行关联。并设置对账规则(一对一,一对多,或自定义)进行对账。

一对一对账 一对多对账

数据处理层

数据处理层是对账比较核心的部分。主要完成的任务,就是根据设定的数据源、和对账规则,高效的执行对账逻辑,返回对账结果。需要注意的核心点:数据核对、差错处理、对账回调。

数据核对:
1、需要对数量进行核对。
2、需要分析出差异记录。

差错处理:
1、支持数据重推
2、失败对账自动重试
3、手工更改处理

对账回调:支持接入系统的对账结果回调

技术选型

软件技术 项目用途
JAVA-8 开发语言
SPRING+MYBATIS 开发框架
MYSQL/PG-SQL 平台数据库
MONGODB/HBASE 对账数据存储
SPARK-STREAM 大数据流处理
QLExpress 规则引擎
POI EXCEL处理
上一篇 下一篇

猜你喜欢

热点阅读