文章目录
为什么要做消费端限流?
A系统每秒最大能处理1000请求,若这时开展了秒杀活动,请求瞬间增多,全部打到A系统上的话那A系统肯定会崩溃宕机什么的,这对业务正常运转造成了巨大的影响。所以我们把消息存入MQ中,然后每次从MQ中拉取1000个请求,保证A系统能正常运转,业务正常进行。
当有一天,A系统要维护了,维护期间会有大量消息堆积在MQ中,维护好了若让MQ中的消息全打入A系统的话,怕不是马上就挂。
所以我们需要在消费端限流,来保证系统的稳定性和业务的正常运转。
消费端限流的测试
配置文件中:
配置prefetch属性设置消费端一次拉取多少消息
消费端的确认模式一定为手动确认。acknowledge=“manual”
消费者:
/**
* RabbitMQ消费端限流
* 1.设置签收消息的方式为手动
* 2.在listener-container中设置 每次拉取的消息数
* prefetch="1" 表示每次从mq拉取1条消息,直到手动确认消费完后,才继续