互联网金融系统的核心是支付结算,而支付结算的基础又是账户系统。互金账户系统的特点是并发量大、响应快、交易金额大,热点账户问题突出。一个合格的账户系统既要解决上述问题,又必须绝对保证资金安全。作为宜信这家互联网金融公司的支付结算中心,其账户系统也必须具备上述特征。
一、账户体系
1.1 账户结构
宜信支付结算账户体系是客户、用户、账户三层结构,证件号和证件类型唯一确定一个客户,客户号和机构号确定一个用户,一个用户下可开多个不同类型的账户。如图:
1.2 账户属性
账户系统的基础是账户,所有的操作都围绕着账户进行,账户包含以下一些属性:
会计科目:每个账户金额的变动要体现一些会计的属性,以便会计核算。
账户类别:分为个人账户、企业账户、平台类账户。
账户明细:账户的明细是反映账户余额变动的每笔详情,采用复式记账法,包含本对方账号、账户等信息、摘要、借方的发生额及余额等信息。
账户余额:记录账户的实时余额。
1.3 会计科目
账户下挂在最底层的会计科目下,会计科目决定了账户的含义及余额变动方向。会计科目的一些属性如下:
科目类别:资产类、负债类、所有者权益、成本类、损益类等。
科目级别:会计科目的级别,一级科目、二级科目、三级科目等。下级科目归属上级科目。
余额方向:标示余额是在借方还是贷方。
科目的期末余额:每日日切后会汇总底层科目所有下挂账户在上一会计日的余额总和,上级科目汇总下级科目的余额总和。
1.4 科目树
宜信支付结算账户系统采用科目树的概念,每个机构都会绑定一个科目树。科目树的根节点是一级科目,底层的科目下挂账户,结构如下:
二、账户系统架构
宜信支付结算账户系统采用公司自研的分布式微服务框架,对外提供http json接口,内部各服务间采用redis实现的消息队列通讯。
2.1 账户系统功能架构
宜信支付结算账户系统分为接入模块、记账子系统、开户子系统、异步记账模块、查询子系统、定时任务子系统、日终子系统、异步日志模块,下图是账务系统功能模块图:
接入模块:提供报文解析、验签、参数校验、权限认证等公共服务,是账户系统的统一入口。
异步日志模块:异步记录业务系统请求报文。
记账子系统:账户系统的核心模块,处理业务系统的记账请求。
开户子系统:处理业务系统的开户请求。
首次开立账户:为个人或企业开立客户、用户及提前配置的默认开通的账户。
指定开立账户:个人或企业在首次开立账户后,可按科目号指定开立账户。
查询子系统:提供账户、记账的一些查询功能。
异步记账模块:提供异步记录账户流水的功能。
定时任务子系统:处理失败重试、热点账户等的定时任务。
日终子系统:提供日切以及日终跑批的功能。
2.1.1 记账处理
记账处理是账户系统的核心功能,该功能对性能的要求比较高,高并发下热点账户问题比较突出,资金的正确性也必须保证,并且根据业务不同,记账的分录也是五花八门,宜信支付结算账户系统如何应对这些问题,这里重点介绍下:
账户系统记账采用记账服务的概念,每个记账服务就是一个记账分录的模板,业务系统按照这个模板传入记账金额、账户号或者用户号等信息。
账户系统如何应对高并发,热点账户等问题