通用对帐平台的思考

内外部项目存在多种对帐环节,并且每一个对帐体系都存在必定代码重复,业务逻辑耦合性高。所以,能够考虑将对帐环节抽象出一套通用对帐系统。尽量适配各类对帐场景。数据库

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

数据接入层

数据接入层

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

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

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

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

对帐管理平台

对帐管理平台

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

一对一对帐
一对多对帐

数据处理层

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

数据核对:
一、须要对数量进行核对。
二、须要分析出差别记录。开发

差错处理:
一、支持数据重推
二、失败对帐自动重试
三、手工更改处理文件上传

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

技术选型

软件技术 项目用途
JAVA-8 开发语言
SPRING+MYBATIS 开发框架
MYSQL/PG-SQL 平台数据库
MONGODB/HBASE 对帐数据存储
SPARK-STREAM 大数据流处理
QLExpress 规则引擎
POI EXCEL处理
相关文章
相关标签/搜索