浅谈消息队列 (半成品, 待完善)

背景

作为一个有点年纪的开发, 消息队列, 竟然还是我的知识盲区(不全盲, 盲一半吧), 主要是之前项目基本用不上, 或者对应模块是其他同事负责的, 秉承着不懂就学的精神, 开始了几个晚上的自学

相关链接

github上的官方教程
github上的官方教程(基于go)
官网教程

基本思想

核心思想: 异步, 解耦, 削峰, 生活中比较熟悉常见的场景, 点外卖算其中一个吧, 就取今晚点的m记做例子吧

未接受任何广告合作, 欢迎m记来撩

商城取用户从下单订单结算成功这个流程, 简单分析一下吧

异步
简单支付

下单订单结算成功最简单, 就是三步:

  1. 下单 (前端提交数据)
  2. 支付 (后端处理)100ms
  3. 完成 (恭喜你, money–)
积分增加

点完后, 突然收到消息, 积分变更提醒, 对哦, 交易成功了, 系统给我加点积分, 不过分吧?
于是, 流程相对有复杂一些了

  1. 下单 (前端提交数据)
  2. 支付 (后端处理)100ms
  3. 积分增加 (也在上述的后端处理中, 100ms)
  4. 完成 (恭喜你, money–, but, 积分++)

这些可好, 原来用户只用等100ms的, 现在得等200ms, 不过, 200ms好像也还在接受范围内, who care

优惠券失效

突然又想起, 刚刚的订单我用了优惠券, 那订单结束后, 我的优惠券该何去何从呢? 点开"我的优惠券"一看, 果然已经"已使用"了, 这么一想, 整个流程又复杂了

  1. 下单 (前端提交数据)
  2. 支付 (后端处理)100ms
  3. 积分变更 (也在上述的后端处理中, 100ms)
  4. 优惠券失效 (也在上述的后端处理中, 100ms)
  5. 完成 (恭喜你, money–)

这一整, 时间变300ms了

futhermore

当然了, 如果各个过程的响应时间不是100ms, 再加上大部分系统流程远不止上述说的这么简单, 一系列流程时间累积起来, 可能用户得等个好几s, 甚至更长时间, 如果你是用户, 你能忍?

so, 只能优化了T.T

(未完待续)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值