V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hi543
V2EX  ›  程序员

时至如今订单并发超售很难解决吗?双 11 亲身遭遇天猫订单超售导致不能支付

  •  
  •   hi543 · 2020-11-11 02:38:17 +08:00 · 6243 次点击
    这是一个创建于 1473 天前的主题,其中的信息可能已经有所发展或是发生改变。

    双 11 首次亲身遭遇有订单不能支付的情况,支付提示库存不足,联系卖家补充。一瞬间就把锅甩给卖家了,不明真相的人可能真以为是卖家的问题。

    咱好歹也学了点编程,多少知道这是多并发导致的。V2 大佬多,我就不献丑了。

    但是购物体验是真的差,熬夜东西抢到了,很欣慰,却不能支付,太难了。天猫作为平台方也不管,躺着把钱挣了,锅还甩出去了。 ——————————————————————————

    时至今日,真的无法解决此类问题吗?

    贴个图吧,免得有人说我造谣。

    库存不足.jpg

    49 条回复    2020-11-12 15:05:31 +08:00
    js8510
        1
    js8510  
       2020-11-11 04:07:49 +08:00   ❤️ 3
    很难。

    如果你再学一点,能够更加有效的解决这个问题。建议发一篇论文分享给大家。此后余生不用再为生机奔波。

    愿你早日成功。
    Heiban
        2
    Heiban  
       2020-11-11 04:24:22 +08:00 via iPhone
    说一句我碰到的疑惑,不能退款是最不应该的吧,有人说银行接口压力过大?直接退支付宝也不行吗……

    淘宝和京东的资金流差很多倍吗,我看京东可以退款。
    Heiban
        3
    Heiban  
       2020-11-11 04:25:07 +08:00 via iPhone
    资金流➡️交易量
    opengps
        4
    opengps  
       2020-11-11 04:40:42 +08:00 via Android   ❤️ 1
    流量激增之后,后端即使有很多服务器,但是死掉的某一台,也会让这台服务器当前的承载的链接挂掉。
    我的闲置的服务器一年了都没问题,就在刚才来了一条自动重启通知。这种重启是跟整个机房的网络波动有一定关系的。
    //i.v2ex.co/SrgZ04q5l.jpeg
    iamwho
        5
    iamwho  
       2020-11-11 06:18:56 +08:00
    其实支付减库存已经解决了,你买不到所以认为没解决。
    如果只是想付款成功,卖家设置 180 天内发货、库存拉满也能玩。
    福报马又不是傻子,砸自己招牌。
    lmmortal
        6
    lmmortal  
       2020-11-11 06:50:10 +08:00 via iPad
    @Heiban 不能退款可能是基于仓储物流操作考虑,淘系物流不能和京东比,京东物流是自己的,好控制
    flyz
        7
    flyz  
       2020-11-11 06:54:03 +08:00 via Android   ❤️ 1
    @Heiban 银行卡付款只能原路返回,那么信用卡付款可以退支付宝余额不就是官方套现了呢。
    Zheming
        8
    Zheming  
       2020-11-11 07:08:27 +08:00 via iPhone   ❤️ 1
    我觉得所谓退款压力过大是一种无能躺平+有利可图的行为,不让你退款销售额只增不减。至于银行不银行的,平常退款也不是立刻到账啊,需要有一段时间和银行对接,真要想退,这个时间拉长点不得了。
    xuanbg
        9
    xuanbg  
       2020-11-11 07:44:59 +08:00
    确实很难。因为只有在高并发的时候,才真正会超卖。而高并发的时候,想要不超卖就得牺牲处理效率。这个矛盾技术是解决不了的。所以,你是老板你肯牺牲效率吗?超卖天又不会塌下来。
    luckylo
        10
    luckylo  
       2020-11-11 07:47:04 +08:00 via Android
    退款问题,只是为了数字好看而已
    realpg
        11
    realpg  
       2020-11-11 08:26:03 +08:00   ❤️ 2
    不同占用库存方式的区别
    支付扣 下单扣 加购物车扣 三种模式
    京东是下单扣
    淘宝大部分是支付扣
    当年的被薅王者是加购物车扣
    des
        12
    des  
       2020-11-11 08:31:18 +08:00
    真要容易解决,12306 每到节假日体验那么差了,排队 xN
    young1lin
        13
    young1lin  
       2020-11-11 08:44:36 +08:00
    @Heiban 京东我也下了单,不能看送达地址是哪,太操蛋了。我几个地址,以前买其他地址用的旧地址,不知道有没有用到当前最新的地址,我在下第一单的时候用的,之后就不清楚了。返回的信息太少了,地址填错了的话我都不知道怎么办。
    young1lin
        14
    young1lin  
       2020-11-11 08:47:27 +08:00
    @des 其实 12306 也是由阿里派人过去支持再次开发的。。。
    EminemW
        15
    EminemW  
       2020-11-11 08:49:59 +08:00 via iPhone
    的确好难
    ily433664
        16
    ily433664  
       2020-11-11 09:02:23 +08:00
    @young1lin #13 订单点进去就可以看到收货地址啊
    Wangdamao
        17
    Wangdamao  
       2020-11-11 09:16:51 +08:00 via Android
    @young1lin #14 双十一和 12306 感觉没有可比性
    misaka19000
        18
    misaka19000  
       2020-11-11 09:19:33 +08:00
    本质上是 CAP 问题,分布式系统中为了保证 AP,C 必然无法保证
    across
        19
    across  
       2020-11-11 09:28:09 +08:00 via iPhone
    @Zheming 退款不会扣除销售额吧,这个数额你都没法统计,最后只会统计退货率。
    woshiaha
        20
    woshiaha  
       2020-11-11 09:32:58 +08:00
    CAP 理论了解下 很多简单的编程问题放大到几百万并发的分布式场景下都会难以完美解决
    fumichael
        21
    fumichael  
       2020-11-11 09:47:46 +08:00
    咱好歹也学了点编程,多少知道这是个超级难题啊
    whx20202
        22
    whx20202  
       2020-11-11 09:50:58 +08:00
    @realpg 个人觉得是正解,另外好像淘宝是可以选择库存模式的
    lyy16384
        23
    lyy16384  
       2020-11-11 09:55:03 +08:00   ❤️ 3
    都提示库存不足了怎么还能叫超售呢,你付了款收不到货才叫超售啊
    jmc891205
        24
    jmc891205  
       2020-11-11 09:56:06 +08:00
    支付了没货发才叫超售。。。
    JustPisces
        25
    JustPisces  
       2020-11-11 09:58:48 +08:00
    我反正硬生生点了 20 多分钟终于等到有人的订单没支付自动取消了,我立马就付款了
    Justin13
        26
    Justin13  
       2020-11-11 09:59:12 +08:00 via Android
    首先这不叫超售,其次支付了才扣库存很合理,最大程度减少黄牛。
    0ray
        27
    0ray  
       2020-11-11 10:02:44 +08:00
    都没付款,怎么能叫超售了
    chenqh
        28
    chenqh  
       2020-11-11 11:58:28 +08:00
    双 11 有库存这个东西吗?又不是 12306
    GM
        29
    GM  
       2020-11-11 12:44:58 +08:00
    你就想吧,如果真的很容易解决,那 TB 、JD 、PDD 等大平台十年前就肯定已经完美解决、绝对不会再出现了。

    归根到底,就是 CAP 问题而已,三者只能取其二:

    要一致性,那么必须可用性、容错性中的一个

    要可用性,那么必须一致性、容错性中的一个

    要容错性,那么必须一致性、可用性中的一个

    你想三个都要?除非活在物理定律不一样的另一个宇宙才有可能了。
    GM
        30
    GM  
       2020-11-11 12:46:13 +08:00
    @GM #29 楼,那么必须 => 那么必须牺牲
    firefox12
        31
    firefox12  
       2020-11-11 16:18:54 +08:00
    一个机房是简单的,多个机房就很难了。想一下 现在都是几十个 idc, 你是 nike, 你要卖 1000 双鞋, 你的数据库已经分成了几十个,在不同数据库里。1000 双怎么分, 然后 比如 有时候 这个机房要 2 双, 它只剩 1 双了。怎么拼? 强一致性当然可以,交易速度降一个级别? 总之 就是各种取舍。
    zeng33
        32
    zeng33  
       2020-11-11 16:36:12 +08:00
    我是不懂楼主的意思的,看了底下评论说的牛头不搭马嘴。
    第一我想问,什么叫没解决订单并发超售的问题?例如这个商品只有 10 个库存,然后有 100 个人进来买,10 人付款成功,90 人显示楼主截图这个页面,有问题吗??难道说要 10 个库存要 100 个人全付款成功才叫解决这个问题?
    第二,10 个库存,100 人进来买,那 90 人不显示你截图的页面那应该显示什么界面?
    ryanlid
        33
    ryanlid  
       2020-11-11 17:19:16 +08:00
    还没付钱呢,期待收货?
    xieqiqiang00
        34
    xieqiqiang00  
       2020-11-11 17:31:29 +08:00
    没有付款成功的话,交易根本没有建立啊,建立订单的数量可以大于实际库存数量的吧
    smy14520
        35
    smy14520  
       2020-11-11 17:37:00 +08:00
    有点疑惑,你这不是没付款成功吗, 这不是成功控制了超售.....
    UN2758
        36
    UN2758  
       2020-11-11 18:01:56 +08:00
    @GM #29 请问一下 CAP 里 AP 怎么理解啊,一致性可以理解两台机器中的数据是否相同,可用性是指程度意义上的可用吗,比如可用性程度是可以从小到大的?
    mawerss1
        37
    mawerss1  
       2020-11-11 18:09:05 +08:00
    @xieqiqiang00
    楼主应该是到了待付款状态,说明已经下单了,楼主意思应该是待付款状态的商品超卖了
    hi543
        38
    hi543  
    OP
       2020-11-11 18:30:01 +08:00
    @mawerss1 #37

    是的,我订单提交成功了,只是犹豫了一会儿才准备付款。

    头一次遇到这种情况,通常认为下了单付不付款是我决定,不能因为没库存就不允许支付了。否则提交订单后,还没有库存,那么这提交订单还有什么意义呢?
    mawerss1
        39
    mawerss1  
       2020-11-11 18:35:49 +08:00
    @hi543
    从这个情况看,我感觉应该是有两个库存量字段,下单时检查一次,付款时再检查一次
    longsays
        40
    longsays  
       2020-11-11 18:36:23 +08:00 via Android
    @hi543 有下单减库存和付款减库存
    活动大促期间商家一般都是付款减库存
    不然一堆锁单又不买的,或者竞争对手拍下不付款
    hi543
        41
    hi543  
    OP
       2020-11-11 18:45:07 +08:00
    @mawerss1 #39 平常天猫立即购买页面,如果是抢购没货的话,页面会提示“目前还有人未支付,请 15 分钟内刷新”类似的提示语,从而我认为天猫只要提交了订单就是有库存的。今天头一次遇到有订单还不能支付的情况,刷新了自己的认知。

    不过你这个说法也比较靠谱。提交订单的时候检查一次库存。付款时又检查一次。
    GM
        42
    GM  
       2020-11-11 18:59:20 +08:00
    @UN2758 可用性,指的是任何时候都正常使用,比如一个机房被水淹了,另一个机房顶着。
    longsays
        43
    longsays  
       2020-11-11 23:11:41 +08:00
    @hi543 #38 给你上一个淘宝后台图 这个是已知问题 没有缺货赔付 因为你没有付款成功
    hi543
        44
    hi543  
    OP
       2020-11-12 01:46:36 +08:00
    @longsays #43 你说的我懂。问题此时提交订单岂不是失去了意义?
    young1lin
        45
    young1lin  
       2020-11-12 09:56:48 +08:00
    @ily433664 没有,京东 app 上没看到,我点进去的,只有当前物流状态,没有收货地址详情
    goodboy95
        46
    goodboy95  
       2020-11-12 09:59:11 +08:00
    论双 11 要求付定金的合理性
    mainjzb
        47
    mainjzb  
       2020-11-12 11:38:42 +08:00
    楼主想要拍下减库存。
    卖家设置付款减库存。
    淘宝被迫背锅。
    dynastysea
        48
    dynastysea  
       2020-11-12 13:54:09 +08:00
    @Heiban 阿里巴不得退支付宝,但是你仔细想想其中的问题点,大的可怕。这不是技术问题,这是政策问题了。非原路退回的后果仔细想想
    longsays
        49
    longsays  
       2020-11-12 15:05:31 +08:00 via Android
    @hi543 看卖家策略呗,像你想的拍下减库存,竞争对手拍一堆不付款,或者等等党拍了继续等其他电商优惠,之后也是一堆不付款
    最后的结果想买的买不到,不想买的占一堆名额,商家明明还有很多库存,这对没抢到订单想买的和商家友好吗?
    真的想买就拍下立即付款即可
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1236 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:12 · PVG 02:12 · LAX 10:12 · JFK 13:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.