RabbitMq 消息队列
1.参考链接
通过消息队列可以实现业务上的解耦,将购买逻辑放到两个系统中完成。
异步 如发动短信逻辑 先返回成功结果 实际把消息放到队列中 等着消费。
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 如何实现削峰
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升