1、谈谈热点账户 业务上(一)

2021-01-16  本文已影响0人  hedgehog1112

大型支付公司,如果银行结算款实时入账,银行账户会有热点账户风险

热点账户:向匿名汇款0.74元,额变35.24元

数据库操作:锁定这条数据,余额更新,减少0.74元,释放锁定(unlock)。一次10毫秒,几千的话,db崩溃。

一、方法一:汇总入账

T日完成日切后,统计成功交易,算总账,汇入结算账户。目前最广泛结算模式,主流收单系统沿用

db压力很小,但未实时更新

思考:领完红包,零钱居然没有,过一会才出现

二、方法二:缓冲记账

削峰填谷,异步化平衡 记账实时性 和 系统稳定性 的记账手段,

1、问题1:工行处理慢

支付宝和工行合作推出“实时转账到卡”,支付宝转账后立即看到入账

支付宝在工行收付账户(用于流出代发时就是热点账户)有一定人民币备付提现、转账。工行单账户处理阈值假设为30笔/秒,24小时不间断(日总处理量2592000笔)

解决:尽快提现到账,要求工行开独立单笔实时银企接口资金代发,不用批量模式:

转账时,支付宝体内不hold,同步调 单笔实时 代发接口要求工行处理(工行代发,不日间垫资)。日交易00万笔,日间峰值可达60笔/秒。同步调用/返回,不会挂起。

2、问题2:日常足够工行串行消化,但峰值超过承载

解决:日间转账请求,工行只校验账户有效性,正常成功,反之失败。队列一秒30笔处理,量不大时候慢慢消化

3、短板

1)业务量过大时,带来业务问题:转账成功,账户看不到

2)异步化带来各类异常:返回成功,扣钱时发现余额;发起转账时正常,1秒后被注销

单纯缓冲记账无法解决热点账户问题。不全盘否定,牺牲记账时效性,换取峰值时稳定性,很多场景依然有用

最后再留个小问题:

很多同学会问,在转账业务中,出款方支付宝账户有热点很正常,但收款方用户银行卡却肯定不是热点账户啊。为啥不能先把用户的账记了,再缓冲记热点账户的账呢?如果能这么做,要怎么做?如果不能这么做,理由呢?

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

上一篇下一篇

猜你喜欢

热点阅读