RabbitMQ实战(一):削峰


基本原理

  • RabbitMQ提供了一种QOS(服务质量保证)功能。
    在非自动确认消息的前提下,如果一定数目的消息还未被消费确认,则不进行新消息的消费。
  • 我们可以将该消息数量设置为商品的库存数量,并给消息设置过期时间;
  • 开启手动应答模式,在执行完秒杀后,对消息进行应答;这样,秒杀的并发量将大大降低;假设每秒内有10000个请求去秒杀100件商品,则在服务器未执行完秒杀之前,最多只有100个请求发送到服务器,其他请求要么过期进入死信队列,要么等待前面的请求得到响应后再发送。对消息进行限流,可以有效缓解数据库的压力。
  • 对于过期的消息,我们放入死信队列中,创建消费者,对消息进行消费。若无库存,则直接返回秒杀结束的消息,否则,继续进行秒杀操作。
  • 使用websocket实现,服务器与客户端的通信,服务器可以提供webSocket将秒杀结果发送给客户端。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM