账户系统如何应对高并发,热点账户等问题

互联网金融系统的核心是支付结算,而支付结算的基础又是账户系统。互金账户系统的特点是并发量大、响应快、交易金额大,热点账户问题突出。一个合格的账户系统既要解决上述问题,又必须绝对保证资金安全。作为宜信这家互联网金融公司的支付结算中心,其账户系统也必须具备上述特征。

一、账户体系

1.1 账户结构

宜信支付结算账户体系是客户、用户、账户三层结构,证件号和证件类型唯一确定一个客户,客户号和机构号确定一个用户,一个用户下可开多个不同类型的账户。如图:

账户系统如何应对高并发、热点账户等问题

1.2 账户属性

账户系统的基础是账户,所有的操作都围绕着账户进行,账户包含以下一些属性:

账户系统如何应对高并发、热点账户等问题

  • 会计科目:每个账户金额的变动要体现一些会计的属性,以便会计核算。

  • 账户类别:分为个人账户、企业账户、平台类账户。

  • 账户明细:账户的明细是反映账户余额变动的每笔详情,采用复式记账法,包含本对方账号、账户等信息、摘要、借方的发生额及余额等信息。

  • 账户余额:记录账户的实时余额。

1.3 会计科目

账户下挂在最底层的会计科目下,会计科目决定了账户的含义及余额变动方向。会计科目的一些属性如下:

账户系统如何应对高并发、热点账户等问题

  • 科目类别:资产类、负债类、所有者权益、成本类、损益类等。

  • 科目级别:会计科目的级别,一级科目、二级科目、三级科目等。下级科目归属上级科目。

  • 余额方向:标示余额是在借方还是贷方。

  • 科目的期末余额:每日日切后会汇总底层科目所有下挂账户在上一会计日的余额总和,上级科目汇总下级科目的余额总和。

1.4 科目树

宜信支付结算账户系统采用科目树的概念,每个机构都会绑定一个科目树。科目树的根节点是一级科目,底层的科目下挂账户,结构如下:

账户系统如何应对高并发、热点账户等问题

二、账户系统架构

宜信支付结算账户系统采用公司自研的分布式微服务框架,对外提供http json接口,内部各服务间采用redis实现的消息队列通讯。

2.1 账户系统功能架构

宜信支付结算账户系统分为接入模块、记账子系统、开户子系统、异步记账模块、查询子系统、定时任务子系统、日终子系统、异步日志模块,下图是账务系统功能模块图:

账户系统如何应对高并发、热点账户等问题

  • 接入模块:提供报文解析、验签、参数校验、权限认证等公共服务,是账户系统的统一入口。

  • 异步日志模块:异步记录业务系统请求报文。

  • 记账子系统:账户系统的核心模块,处理业务系统的记账请求。

  • 开户子系统:处理业务系统的开户请求。

    • 首次开立账户:为个人或企业开立客户、用户及提前配置的默认开通的账户。

    • 指定开立账户:个人或企业在首次开立账户后,可按科目号指定开立账户。

  • 查询子系统:提供账户、记账的一些查询功能。

  • 异步记账模块:提供异步记录账户流水的功能。

  • 定时任务子系统:处理失败重试、热点账户等的定时任务。

  • 日终子系统:提供日切以及日终跑批的功能。

2.1.1 记账处理

记账处理是账户系统的核心功能,该功能对性能的要求比较高,高并发下热点账户问题比较突出,资金的正确性也必须保证,并且根据业务不同,记账的分录也是五花八门,宜信支付结算账户系统如何应对这些问题,这里重点介绍下: