V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
pengxiaoyu
V2EX  ›  问与答

技术方面,银行是如何支持某个账户的频繁小额转账的

  •  
  •   pengxiaoyu · 280 天前 · 1052 次点击
    这是一个创建于 280 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我理解是每次进行账户余额变动都要进行行锁,如果这个账户是要频繁进行小额转账,比如一秒有十万笔、百万笔汇款,那会因为行锁被阻塞。这种情况是如何处理的呢?

    1.定时刷新?汇总一秒的所有数据再刷到账户数据中
    2.只记录流水?余额根据流水汇总

    麻烦各位大佬,不吝赐教
    6 条回复    2024-03-25 16:42:43 +08:00
    buaasoftdavid
        1
    buaasoftdavid  
       280 天前
    数据库不可能为了这一个单一需求做定制化的。应该不会是定时刷新。只记录流水也不行的,每次转账都要读一次数据看余额是否够 扣款的。

    总结说来,正常银行不会让你一秒转百万笔汇款的。
    Foxkeh
        2
    Foxkeh  
       279 天前
    批量,异步,而且并发没法像你说的这么高
    lakehylia
        3
    lakehylia  
       279 天前
    你不可能拿到银行转账接口,拿不到接口,你怎么做到一秒十万笔,靠手点吗?
    wy315700
        4
    wy315700  
       279 天前
    一秒有十万笔、百万笔汇款的账号。
    这个级别的交易已经不是频繁了。


    参考一下数据吧。

    2019 年双 11 支付宝交易峰值为 54.4 万笔/秒
    pengxiaoyu
        5
    pengxiaoyu  
    OP
       279 天前
    打个比方,纯技术的讨论,就是说如何支持。换句话说,如果行锁了一个事务执行需要 10ms ,那是不是意味着 1s 只能修改 100 次账户呢
    waytodelay
        6
    waytodelay  
       274 天前
    同想知道收款方是怎么做的。

    付款方我理解为只有个人可以操作,一般来说是没有并发的。

    收款方,特别是对公的收款方,是怎么做到频繁的更新?比如 1 秒收到 10 笔转账,是走 select for update 吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5561 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 06:35 · PVG 14:35 · LAX 22:35 · JFK 01:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.