核心银行系统 7 X 24小时 不间断运行的核心系统设计(方案一)

夜间批处理,如生成会计流水文件、总分对账文件、日终充值文件等,按账户当日日终余额或当日交易流水进行统计汇总,需要保持数据的一定静止,而夜间联机交易会更新账户余额,账户余额为动态。一般批量处理与联机处理的冲突区主要在账户余额,解决批量用账户日终余额与联机用账户实时余额的存储与使用问题,可很大程度实现7×24业务服务。也即解决总分账、会计账一致问题。

 

实现7x24服务,最关键的要点在于保证两份数据的准确并存:

  • 动态实时数据(实时余额):主要是动账及日间查询交易使用
  • 日切点的静态数据(上日余额):主要用于批处理:比如总分核对、财务供数等

 

目前各厂商主要使用的方案有以下几种:

  • 单表双余额
  • 双表(双表又分两种:临时表为分户临时表或是流水临时表)

工商银行模式双主档、单余额、双流水, 中国银行模式双主档、单余额、单流水, 建设银行模式单主档、双余额、双流水,  民生银行模式单主档、单余额、双流水

 

参考建行方案,结合双日期、双余额的分户帐设计,制定如下方案:

 

双余额每日更新方案

分户账上设置当前余额、上日余额、最后交易日期。根据以上字段来实现当前余额、上日余额的读取和更新,系统每天将当前余额更新到上日余额,当前交易日期更新到最后交易日期。 其中当前交易日期也称会计日,存放在银行日期表

1. 日终批量刷新上日余额

日终切日后一开始直接批量刷新上日余额,便于后续读取及供数。为避免长时间锁表,该批量任务逐笔处理。

  • 对于一笔分户账,
  • IF 最后交易日期 < 当前交易日期
  • UPDATE 分户账 SET 上日余额=当前余额,最后交易日期=当前交易日期

2. 动账处理

切日后,日终批量刷新需要一段时间,为确保在此期间的联机交易正常对外服务,动账时当日第一笔交易更新上日余额、最后交易日期。

首先检查帐户的‘最后交易日期’与‘当前交易日期’是否相同,如果不同,说明该帐户第一次更变余额,此时要将‘当前余额’放入‘上日余额’,‘最后交易日期’更改为此‘当前交易日期’,并记录交易流水,该交易流水的日期为日切后当前交易日期。 换日后的第二笔及更多交易,只更新当前余额,并记录交易流水。

联机交易与日终批量更新上日余额有极小的可能会出现冲突(同时更新同一账户)。如果发生,解决如下:(1) 如果批量锁表,联机失败,交易重做将成功。 (2)如果联机锁表,批量失败,批量重新从断点重跑。

 

3. 获取上日余额处理

取上日余额的情景均在日终刷新上日余额之后,直接取分户账中的上日余额即可。

 

参考链接

https://www.jianshu.com/p/c0c20144027b

https://zhuanlan.zhihu.com/p/20894306

上述两个链接的方案合并阅读,可得方案。

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值