按照嘉宾的要求,本文不对外公开。如果你是意外看到这篇文章,请勿将链接发送给其他人。
分享
大家好,我主要负责资金系统的设计开发。在这里和大家分享下资金系统升级重建的一些经历。不足之处欢迎拍砖 公司原有系统设计的比较早,主要供整个集团所有资金交易、财务、运营级客服使用。原有系统账户模式为每个机构每个用户一个账户。核心交易依赖数据库的处理能力。 新构建的资金系统采用分布式设计。每个用户在每个机构可以支持多种类型账户,每个账户专款专用,资金使用更安全清晰透明. 系统使用的技术架构主要这几个:
分布式数据架构能力,按照业务类型进行垂直拆分,按照客户请求进行水平拆分;对于读远远大于写的数据进行读写分离和数据复制处理。从应用服务、数据服务到中间件服务均为集群部署。有效解决金融支付数据库高并发访问瓶颈问题。是一个具备大规模水平扩展能力的、高效分布式系统。
针对还款业务集中、热点账户集中的技术难点,采用完善的算法进行异步拆解,确保异步处理中不存在资金损失的风险。同时,增加批处理功能,大幅提升单台服务器的处理能力。
对于开户、冻结、解冻、一对一转账、多对一转账、多对多转账,流程主控逻辑保持一致,业务处理逻辑由分布式事务框架进行保护,严格遵循先出后入,避免资金流失。充值、提现、代扣业务也有统一的主控逻辑。
每日进行机构账户、会员账户、结算账户等各类型账户的资金结算操作,准确完成在途资金、各类汇总资金、系统出入资金等总额统计,进行完整试算平衡校验。每日进行资金与支付通道的对账及协助业务系统完成与资金的对账。在校对流水的同时,进行整体资金变化的跟踪,全力做到安全可靠。同时,针对不同的支付通道不同特征业务类型,进行针对性的存疑账跟踪处理,真正做到安全可信赖。
针对交易监控上:实时监控异常资金流水,准确提示10分钟之前的未完结异步交易。监控交易量异常突增现象,提醒人工跟踪接入。
在涉及到资金操作接口均具备严格的幂等性控制,避免出现业务方的请求被重复执行。
新系统 不同业务方资金数据完全隔离,针对特殊的资金需求,定制不同的资金账户类型,完成个性化的资金交易。各业务方、特殊资金需求完全隔离,避免特殊业务互相干扰,同时也利于快速适配特殊资金需求,简单方便,易于扩展,安全可靠。
Q&A
- 水平拆分是按照payty维度进行拆分,拆分为多个数据库节点,利用mycat来统一处理。
- 还款业务因为涉及分账;多数为-对多分账处理。交易时先预计算金额,保证出金同步扣除。入账数据按照交易原子拆分计入异步入账凭证。异步入账凭证由异步处理任务处理。处理时同一个账户多比流水合并处理账户变入账动,变动流水批量入账。
- party 为当事人,也就是机构、以及机构下的用户。
- 试算平衡 前提是支付渠道交易对账平账,确保渠道交易结算没问题,其次确保机构和用户之间发生的资金额和渠道一致。 另外要确认日流水汇总和实际账户日变动一致。
-运营和统计报表的跨库查询会比较多,有没觉得速度有些影响? 因为数据是水平拆分的。涉及交易的查询,都是从ES取数据。
本文档来自支付产品技术交流群的聊天记录整理,由志愿者整理并发布到本网站。如需要及时收到来自支付产品技术交流群的最新消息,请扫码关注“凤凰牌老熊”的微信公众号。 本群面向支付行业的有经验(2年以上)的产品经理、软件工程师、架构师等,提供交流平台。如想加入本群,请在本文评论中留言(不公开),说明所在的公司、负责的工作、入群分享的主题和时间。