核心银行系统 7 X 24小时 不间断运行的核心系统设计(方案二)
方案一与方案二,最终选择了方案二,原因:方案一每日批量更新账户上日余额,千万级别的数据更新耗时
夜间批处理,如生成会计流水文件、总分对账文件、日终充值文件等,按账户当日日终余额或当日交易流水进行统计汇总,需要保持数据的一定静止,而夜间联机交易会更新账户余额,账户余额为动态。一般批量处理与联机处理的冲突区主要在账户余额,解决批量用账户日终余额与联机用账户实时余额的存储与使用问题,可很大程度实现7×24业务服务。也即解决总分账、会计账一致问题。
实现7x24服务,要点在保证两份数据的准确并存:
- 动态实时数据(实时余额):主要是动账及日间查询交易使用
- 日切点的静态数据(上日余额):主要用于批处理:比如总分核对、财务供数等
双余额动账方案
分户账上设置“当前余额“、”上日余额“、”最近交易日期”。根据以上字段来实现当前余额、上日余额的读取和更新,仅在动账交易发生时才更新上日余额,即如果该账户长期无动账,在此期间将不用更新上日余额
1. 实时动账处理
日切后,动账时当日第一笔交易更新上日余额、最后交易日期。
首先检查帐户的‘最近交易日期’与‘会计日’是否相同, 如果不同,说明该帐户日切后第一次变更余额, 此时要将‘当前余额’放入‘上日余额’,‘最近交易日期’更改为‘会计日’,并记录交易流水,该交易流水的日期为日切后会计日。 换日后的第二笔及更多交易,只更新当前余额,并记录交易流水。
2. 分户账获取上日余额处理(总分对账文件)