消息队列与RabbitMQ

本文介绍了消息队列在分布式系统中的作用,包括通过异步处理提高系统性能和降低系统耦合性,并对比了ActiveMQ、RabbitMQ和Kafka等消息队列。重点阐述了RabbitMQ的六种工作模式,如简单队列、工作队列、发布/订阅、路由、主题交换机和RPC模式。
摘要由CSDN通过智能技术生成


本文借鉴了新手也能看懂,消息队列其实很简单中有关消息队列的部分内容

一.消息队列

消息队列是一个存放消息的容器,当我们需要使用消息的时候可以取出消息供自己使用。分布式系统中经常要使用到消息队列,使用消息队列主要是为了达成两个目的,第一点是通过异步处理提高系统性能,消息队列有削峰、减少响应所需时间的功能;第二点是降低系统耦合性。

1.1 通过异步处理提高系统性能

在这里插入图片描述
如上图,在不使用消息队列服务器的时候,用户请求后一直要等到数据库写入完成后才能响应,因此用户必须要等待很长时间,服务器的负载也会因此飙升。
但是在使用消息队列之后,用户的请求数据发送给消息队列之后立刻返回响应,然后数据库再从消息队列中读取数据写入数据库,这样用户请求处理的过程就变成了一个异步的过程。由于消息队列服务器处理速度快于数据库(消息队列也比数据库有更好的伸缩性),因此响应速度得到大幅改善。

通过以上分析我们可以得出消息队列具有很好的削峰作用的功能——即通过异步处理,将短时间高并发产生的事务消息存储在消息队列中,从而削平高峰期的并发事务。 举例:在电子商务一些秒杀、促销活动中,合理使用消息队列可以有效抵御促销活动刚开始大量订单涌入对系统的冲击。如下图所示:

在这里插入图片描述

1.2 降低系统耦合性

在不使用消息中间件的场合下,如果业务逻辑比较复杂,那么业务关系之间的关系就会非常混乱,难以管理,复用性也非常差

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值