秒杀系统的多种实现方案

秒杀系统最主要的问题是
1.高并发
2.超卖
3.数据库的压力(暂且不讨论)

但是RabbitMQ、RocketMQ能够

削峰
异步
解耦

我在秒杀系统直接用MQ来进行排队下,就能解决

1.流量削峰,这样不去使用sentinel限流,造成有损限流

2.排队购买,这样可以不去使用Redis分布式锁

所以为什么秒杀系统是

sentinel限流+Redisson+redis缓存+rabbitMQ

而不是

rabbitMQ+redis缓存+rabbitMQ的结构?

消息丢失、消息重复消费、消息有序消费,能够解决的情况下为什么会用上面的(sentinel限流+Redisson+redis缓存+rabbitMQ)形式解决问题