问答

消息队列使用场景疑惑

作者:admin 2021-05-15 我要评论

现在有一个账户钱包变动记录表,这种有必要用队列实现么? 多谢各位指点,我写了个简单的demo欢迎指点: https://github.com/liuzhongsh... ### 消息队列: 解耦...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

现在有一个账户钱包变动记录表,这种有必要用队列实现么?
多谢各位指点,我写了个简单的demo欢迎指点:https://github.com/liuzhongsh...

###

消息队列:解耦削峰异步
这3大场景你可以思考一下用不用的到,有没有必要用

###

消息队列里的数据是用来消费的,消费完还是要存到库里做持久化。

有没有必要用,得看你们具体的使用场景。

###

像这种时效性要求不高的操作,是可以使用队列,但是引入队列会增大系统的复杂性,而且引入了消息系统必定会需要对数据做幂等性,对于钱包变动表这种敏感信息,流水对不上对用户影响会非常大的,如果用户流水变动不是非常频繁,可以不需要队列操作

###

如楼上所言,消息队列的数据最终还是需要进行持久化处理了,更不用说 账户钱包变动记录表 这种资金数据,最终还是需要入库的,但是需要考虑一个问题,就是在 入库消耗 会有个时间差。

场景:

  1. 用户 A 有帐户有 10 元
  2. 消息队列有 10 条记录待消耗,每条需要将帐户减 1 元
  3. 队列消耗了 7 条,那么余额还有 3 元
  4. 此时购买某个价值 2 元的商品

那这个时候用记可以继续购买么?
A. 如果可以购买,余额可能为负数
B. 入队列消耗,余额不足时提示失败,影响用户体验

当然这个问题可以使用其它方式来解决,不过不在本次讨论范围之内

可以使用队列异步处理,带来的后果是不能即时反馈用户,如果你的场景是需要对用户即时反馈(yes/no),建议有限度的使用或者使用其他方案

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 请问下prometheus怎么进行自定义的按业

    请问下prometheus怎么进行自定义的按业

  • 节流函数为什么,点击无效,监听窗口大

    节流函数为什么,点击无效,监听窗口大

  • express访问静态资源失败

    express访问静态资源失败

  • IE 浏览器下 match 方法报错

    IE 浏览器下 match 方法报错

腾讯云代理商
海外云服务器