通用對帳平臺的思考

內外部項目存在多種對帳環節,並且每一個對帳體系都存在必定代碼重複,業務邏輯耦合性高。所以,能夠考慮將對帳環節抽象出一套通用對帳系統。儘量適配各類對帳場景。數據庫

一些套路:將系統劃分爲數據接入層,數據處理層,數據管理平臺。微信

數據接入層

數據接入層

爲了便捷快速的接入數據。平臺應該提供多種數據接入方式和易於擴展的持久化方式。框架

離線接入方式:文件提交接口支持,手工文件上傳支持,適配第三方系統(微信、支付寶流水)。支持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處理
相關文章
相關標籤/搜索