RabbitMq 消息队列

1.参考链接

2.为什么使用消息队列?消息对列有什么好处?

3.RabbitMQ 手动确认模式(项目开发常用模式)

通过消息队列可以实现业务上的解耦,将购买逻辑放到两个系统中完成。

异步 如发动短信逻辑 先返回成功结果 实际把消息放到队列中 等着消费。

削峰  

listener:
simple:
# 表示消费者消费成功消息以后需要手工的进行签收(ack确认),默认为 auto 开启ACK手动确认模式
acknowledge-mode: manual
#消费者数量
concurrency: 100
#最大消费者数量
max-concurrency: 500
#限流(消费者每次从队列获取的消息数量)
prefetch: 1
retry:
initial-interval: 5000ms
enabled: true
max-attempts: 5
default-requeue-rejected: true



 在处理秒杀场景时经常会用到rabbitmq削峰限流作用,假设我们的系统能每秒处理1000个请求,如果有上万个请求同时打进来,会造成服务器的瘫痪

 

这时就需要在系统之前加一次处理,将请求发送的MQ中,再让A系统以每秒1000的速率去请求mq服务器。

交换机创建完成后 无法修改 除非删除

springboot集成rabbitmq商品秒杀业务实战(流量削峰)

rabbitmq队列是先进先出的顺序,先来后到,1000个请求你也得给我排队,前100个请求抢单成功之后就注定了后900个请求是抢单失败的!

使用RabbitMQ的最主要变化就是:以前抢单操作请求直接由我们抢单应用程序执行,现在请求被转移到了RabbitMQ服务器中。RabbitMQ服务器把接收到的抢单请求进行排队,最后由RabbitMQ服务器把抢单请求转发到我们的抢单应用程序,这样的好处就是避免我们的抢单应用程序短时间直接处理大量请求。RabbitMQ服务器主要作用是减缓抢单应用程序的并发压力,相当于在我们的抢单程序之前加了一道请求缓冲区

1.springboot 集成 rabbitmq

2.rabbitmq 消费者开启手动确认消息 配置文件

3.rabbitmq 如何实现削峰 

原文地址:https://www.cnblogs.com/nextgg/p/15816363.html