分享

第一部分 基础知识

名词解释

【科目】 是按照经济内容对会计要素所作的进一步的分类, 是对各项业务和财务活动按照不同的经济特征进行分类的名称, 它是总括反映、监督各项业务和财务活动的一种方法。

翻译成人话:科目和我们上学的学习学科一样:分数学、语文等,就是一堆性质相同账务的分类集合。

科目是最近有人问的比较多的问题,先解释一下,一般银行里科目的列表:

image

按用途,期限等区分,我们发现每一个科目都是根据“期限“、“主体”、“用途”等组合在一起的用一张设计好的科目字典表举例更为直接。

image

image

关于科目就不再继续展开了,说下其他的一些基本概念。

【核算】 会计核算也称会计反映,以货币为主要计量尺度,对会计主体的资金运动进行的反映。它主要是指对会计主体已经发生或已经完成的经济活动进行的事后核算,也就是会计工作中记账、算账、报账的总称。

【清算】 计算各方应收应付钱款的时间与金额。

【对账】 是对前一个清算周期的交易信息进行核对,以确认交易信息的一致性和正确性的过程。对账包括系统内对账、系统间对账。要求做到账账相符、账证相符、账实相符。一般指用于各机构之间。

为了节约大家时间,需要各位同学们自己延伸阅读的内容:核算机构,业务状况表、资产负债表、损益表、现金流量表、年终结算、记账主体、记账符号。(请大家自己百度)

第二部分 设计原则与方法

记账规则,见 《商业银行会计学》 里面有更详细的信息。

image

【记账方法】

系统设计应按照复式记账原理,采用借、贷记账法。以会计科目为主体,以“借”、“贷”为记账符号,有借必有贷,借贷必相等。表外科目采用单式记账,发生收入时记借方、销减时记贷方,余额在借方反映。

通用记账方法有:一记双讫、一记多讫、多记多讫(一借一贷、一借多贷、多借多贷)。

系统提供内部账错账冲正功能。这些功能包括:当日错账更正、隔日错账冲正、隔年错账冲正。隔日错账冲正通过红、蓝字传票冲正;隔年错账冲正通过蓝字反方向传票冲正

【核算原则】

二级同步核算。但各种IT系统由于技术限制,如TPS并发量限制等,会做成先进行分户核算在,再异步或定时进行总账核算。

分户账核算,也叫明细核算,系统以明细核算为主,是系统核算的最底层,主要涉及的范围包括如下模块:分户账(动态分户、静态静态),各种登记簿(开销户登记簿、冻结解冻登记簿、法院查控登记簿等等)、余额表、限额表、分户明细、业务流水。

总账核算 ,也叫综合核算,包括总账账首、总账明细、日计表、月计表(季,年)核算表。

总账,也可以理解为科目总账,一个科目无论几级都对应一个总账。

【总分平衡关系】

总总平衡: 总账之间的平衡关系,借方、贷方总账余额必须相等。

总账自身平衡: 一个科目总账,内部期初余额、发生额、期末余额(加借减贷后)之间必须相等。

总分平衡: 一个科目总账当前余额,总是等于其科目下的分户余额合计。

分户平衡: 分户之间的平衡关系,借方分户余额合计、贷方分户余额合计必须相等。

【分户表及关联体系】

以下展示部分表关系逻辑图,本图仅仅是一种演示,实际系统比此图复杂。

image

【分户表里比较重要的字段】

账户状态 : 0:销户1:正常(默认)3:挂失4:司法冻结 后关联挂失冻结登记簿

余额

累计发生

支付状态 :0:只收不付1:正常2:不收不付3:部分止付

冻结状态

昨日余额

控制金额 : 用户实际可用余额=余额-控制金额-代扣备用金(对于控制金额:在冻结时登记增加.在解冻时登记扣减)

账务系统重要部分,就是业务逻辑究竟该怎么写,这个今天暂时不涉及这个模块。下面聊一下最近群里关心的热点账户问题。

第三部分 账户系统优化相关

【为什么会出现热点账户】

第一种原因:大业务量下,业务逻辑的设计导致部分内部账需要频繁update。

举例:应用场景二类账户充值

银联渠道充值会计分录如下:

 借:银联跨行转账(30010404)---银联
 贷:个人活期储蓄存款(2011010201)二类分户

银联转入手续费支出:

借:账户管理手续费支出(642107)-----银联转账手续费支出(开设账户)
贷:应付支付渠道手续费(22410605)----应付银联转账手续费(开设账户)

一笔充值业务需要对客户分户,和至少三个内部账户进行访问修改,三个内部账每一笔银联充值都需要访问和修改,造成资源冲突,形成热点。

第二种原因,某一收款商户账户促销活动,访问量急剧提升。造成资源冲突,形成热点。

【热点账户处理方式】

处理方式分两步:

  1. 把同步交易进行异步拆分;
  2. 优化业务逻辑。

异步拆分步骤:把原应用A交易记录B业务核算部分,通过消息中队列异步处理。交易记录分成业务记录(我们可以把这个叫做场景记录)和账务属性检查(支付状态,是否红字),业务核算串行异步处理会计分录。

优化业务逻辑思路:这个是提高并发的常规思路,基本方法分析业务逻辑合理性,对部分逻辑做缓存,把insert业务提前,update业务最后处理。热点账户状态缓存代码举例:我们把热点账户从关系数据库放入内存数据库,访问时读取内存库,在修改时候同时修改内存库和关系数据库。提升账户查询速度。

访问内存数据库 image

同步修改关系数据库和内存数据库 image

【热点账务缓存记账带来的缺点】

  1. 账户状态已经确认,但实际没有进行真正的业务核算,资金未到账。大并发下削峰但不能填谷。
  2. 当账户状态已经被确认后,账户属性发生变化:业务已经受理并返回成功,缓冲后实际处理账户已冻结,被止付。交易失败。

对于这些极端问题,在用户体验方面会较差,目前解决办法是,判断出较大峰值给用户提示“业务已受理”,而不是“办理成功”。


问答

1 Q:计息也属于账务的范畴吗

A:当然属于。今天分享的只是一个演示图,实际上存款产品 表在数百张,一般银行的核心账务都上千张。

2 Q:热点商户处理方案缺点1:能削峰不能填谷,这个不能填谷指的是?

A:这个意思是一旦峰值队列太长了后,一直都不能消化掉,导致无谷可填,也就失去了这个方案的意义。


本文档来自支付产品技术交流群的聊天记录整理,由志愿者整理并发布到本网站。如需要及时收到来自支付产品技术交流群的最新消息,请扫码关注“凤凰牌老熊”的微信公众号。 本群面向支付行业的有经验(2年以上)的产品经理、软件工程师、架构师等,提供交流平台。如想加入本群,请在本文评论中留言(不公开),说明所在的公司、负责的工作、入群分享的主题和时间。