RabbitMQ基本介绍(一)

RabbitMQ介绍

一、核心概念

RabbitMQ的核心概念如下:

  • 生产者:发送消息的应用。
  • 消费者:接收消息的应用。
  • Exchange:将消息路由到Queue的组件。
  • Queue:存储消息的缓冲区。

二、RabbitMQ消息流

消息在RabbitMQ的组件之间流动的过程如下:
1、生产者向Exchange发送消息。
2、Exchange根据消息属性将消息路由到Queue进行存储。
3、消费者从Queue拉取消息进行消费。

生产者 --> exchange --> queue--> 消费者

三、应用场景

异步解耦

RabbitMQ可用于单体应用被拆解为微服务后不同微服务间的通信。应用解耦的好处是不同应用的迭代不再相互依赖,而异步通信的好处是数据不再需要被立即处理。异步解耦能有效缩短数据链路长度,提高数据处理效率。

削峰填谷

大型活动带来较高流量脉冲时,没有做好相应保护容易导致系统超负荷甚至崩溃,限制太过则会导致请求大量失败而影响用户体验。RabbitMQ能做到削峰填谷。其高性能的消息处理能力可以承接流量脉冲而不被击垮,在确保系统可用性的同时,通过快速有效的请求响应技术提升用户体验。其海量消息堆积能力确保下游业务在安全水位内平滑稳定的运行,避免流量高峰的冲击。

分布式缓存同步

大量并发访问数据库会导致页面响应时间长。通过RabbitMQ构建分布式缓存,支持实时通知数据变化,有效降低页面响应时间,满足对变更的大量访问需求。

四、Connection和Channel

Connection

Connection是物理TCP连接。Connection将应用与RabbitMQ连接在一起。Connection会执行认证、IP解析、路由等底层网络任务。应用与RabbitMQ完成Connection建立大约需要15个TCP报文交互,因而会消耗大量的网络资源和消息队列RabbitMQ版资源。大量的Connection会对消息队列RabbitMQ版造成巨大压力,甚至触发RabbitMQ的SYN洪水攻击防护,导致RabbitMQ无响应,进而影响您的业务。

Channel

Channel是物理TCP连接中的虚拟连接。当应用通过Connection与RabbitMQ建立连接后,所有的AMQP协议操作(例如创建队列、发送消息、接收消息等)都会通过Connection中的Channel完成。Channel可以复用Connection,即一个Connection下可以建立多个Channel。Channel不能脱离Connection独立存在,而必须存活在Connection中。当某个Connection断开时,该Connection下的所有Channel都会断开。当大量应用需要与RabbitMQ建立多个连接时,建议您使用Channel来复用Connection,从而减少网络资源和RabbitMQ资源消耗。

使用建议(注释)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT界的一只菜鸟

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值