面试-消息队列

1.为什么要使用消息队列

优点:

1.解耦

解耦是指让生产者和消费者之间解耦。比如,用户下单后,订单系统需要通知库存系统,假如库存系统无法访问,则订单减库存将失败,从而导致订单操作失败。订单系统与库存系统耦合,这个时候如果使用消息队列,可以返回给用户成功,先把消息持久化,等库存系统恢复后,就可以正常消费减去库存了。

2.异步

将消息写入消息队列,非必要的业务逻辑以异步的方式运行,不影响主流程业务。

3.削峰

系统流量突然增大时,控制消息数量阈值,而消费端按正常状态处理消息,保证系统正常运行。比如秒杀活动,一般会因为流量过大,从而导致流量暴增,应用挂掉。这个时候加上消息队列,服务器接收到用户的请求后,首先写入消息队列,如果消息队列长度超过最大数量,则直接抛弃用户请求或跳转到错误页面。

缺点:

可用性降低:引入消息队列之后,如果消息队列挂了,可能会影响到业务系统的可用性。

系统复杂性增加:加入了消息队列,要多考虑很多方面的问题,比如:一致性问题、如何保证消息不被重复消费、如何保证消息可靠性传输等。

 具体参考:

https://blog.csdn.net/Trouvailless/article/details/126082156

保证消息的顺序执行:

https://blog.csdn.net/zengdongwen/article/details/100609348

 

posted @   foreast  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示