秒杀系统最主要的问题是
1.高并发
2.超卖
3.数据库的压力(暂且不讨论)
但是RabbitMQ、RocketMQ能够
削峰
异步
解耦
我在秒杀系统直接用MQ来进行排队下,就能解决
1.流量削峰,这样不去使用sentinel限流,造成有损限流
2.排队购买,这样可以不去使用Redis分布式锁
所以为什么秒杀系统是
sentinel限流+Redisson+redis缓存+rabbitMQ
而不是
rabbitMQ+redis缓存+rabbitMQ的结构?
消息丢失、消息重复消费、消息有序消费,能够解决的情况下为什么会用上面的(sentinel限流+Redisson+redis缓存+rabbitMQ)形式解决问题