消息队列的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
north521

消息队列的问题

  •  
  •   north521 2015 年 11 月 14 日 4103 次点击
    这是一个创建于 3816 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如说下订单,扣款,确认 都是用消息队列,顾客点击就会返回信息 扣除 5 块成功
    如果后台处理扣款失败,顾客查询钱的时候,会是多少?
    谢谢。

    11 条回复    2015-11-19 08:54:02 +08:00
    ChanneW
        1
    ChanneW  
       2015 年 11 月 14 日
    “确认” 具体是干了个什么
    north521
        2
    north521  
    OP
       2015 年 11 月 14 日
    @ChanneW 额,就是付完款之后,消息队列返回一个消息接受成功,然后前台就显示付款完成了
    domty
        3
    domty  
       2015 年 11 月 14 日
    支付,扣款,回复结果放一条事务里执行,失败回滚
    扣款失败等于支付失败,查钱的时候等于没被扣过款
    watzds
        4
    watzds  
       2015 年 11 月 15 日 via Android
    @domty 执行完才回复?那不是有可能很慢?
    watzds
        5
    watzds  
       2015 年 11 月 15 日 via Android
    上次去阿里,吃饭时同学有问阿里中间件负责人,怎么回答的忘记了。。。
    watzds
        6
    watzds  
       2015 年 11 月 15 日 via Android
    看双 11 瓶颈就是支付,是不是支付并没有用消息队列?
    north521
        7
    north521  
    OP
       2015 年 11 月 15 日
    @domty 这并没有异步解耦
    domty
        8
    domty  
       2015 年 11 月 15 日
    @li24361
    什么意思?
    下订单和支付不是两个流程吗 支付和扣款在服务器端看来应该是一个过程里的吧

    用户点击发出支付请求 服务器端获得请求后 先效验 之后扣除用户款项 修改订单支付状态 返回请求结果

    假使你把扣款 修改支付状态等分拆成单独的服务接口 也应该存在 rollback 或者 commit 的执行步骤吧,否则一旦在支付过程中出现错误已修改的数据就无法恢复了。
    假使以上这些数据库操作都是异步的,粗糙点想,当一个请求新进入消息队列后,先检测消息队列的长度,一旦队列过长(比如大于某个设定的阈值),直接返回创建请求失败。给每个请求的执行时间设定一个超时时间,一旦超过超时时间直接中止执行就地回滚。

    我只做过小型的订单支付模块,以上只是我的理解。
    watzds
        9
    watzds  
       2015 年 11 月 18 日
    可见关键交易操作不是异步的。

    "以双 11 为例,完成一次交易动作需要调用 200 多个应用系统同时完成,假设每个系统需要 10 毫秒才能返回,那么整条链路就需要 2 秒钟才能完成调用过程,再结合前端延迟,总时长或超 3 秒。数据显示,每增加 1 秒延迟,就会有流失 6%的用户。而异步化系统能有效改善该现象,只要保证三个应用的同步调用保证,其他非重要的系统可并行在后端异步完成,最后用户体感的延迟将从原有的 2 秒直接下降到 30ms ,用户流失率将大幅降低。"

    http://www.csdn.net/article/a/2015-11-18/15831083
    watzds
        10
    watzds  
       2015 年 11 月 18 日
    还有一条关于阿里每秒支付达到 8 万笔 /秒的文章
    north521
        11
    north521  
    OP
       2015 年 11 月 19 日
    @watzds 恩,其实这三个还是同步的,所以说只要优化到这三个应用足够快就好了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2725 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 07:01 PVG 15:01 LAX 00:01 JFK 03:01
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86