springBoot自带的异步和MQ有什么区别呢

来源:20-7 使用异步线程代替RocketMQ

qq_Theonlywinne_0

2023-07-13

  1. 既然异步线程也能解决,为什么还要用RocketMQ,它是有更多功能吗
  2. 为什么用MQ后,买票就可以从只使用锁时,50张票,两百人抢,会有剩余的情况。变成了50张票全部卖完,不会有剩余。这个原理是什么呢?
写回答

1回答

甲蛙

2023-07-13

1 异步是在本机运行的,MQ的收发可以不在同一机器上。比如购票的场景,用异步的话,接收订单和处理订单是在同一机器上,会抢资源;用MQ的话,就可以放在不同的机器上,比如接收订单的需要快速处理,可以配置10台机器,处理订单的不需要那么高的并发,只配置5台机器就可以了。

2 不用MQ时,假设库存10,有10个人同时抢票,只会有一个人拿到锁,另外9个人直接失败,也就是经过10人抢票后,只卖出去了一张票。而用MQ后,10个人是排队一个一个出票的,最终不会有剩余。

1
0

新版Springboot3.0打造能落地的高并发仿12306售票系统

最新版Spring3.0仿12306售票系统实战

852 学习 · 512 问题

查看课程