RabbitMQ介绍

MQ的定义

RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用。

消息中间件最主要的作用是解耦,中间件最标准的用法是生产者生产消息传送到队列,消费者从队列中拿取消息并处理,生产者不用关心是谁来消费,消费者不用关心谁在生产消息,从而达到解耦的目的。

在分布式的系统中,消息队列也会被用在很多其它的方面,比如:分布式事务的支持,RPC的调用等等。

Rabbitmq系统最核心的组件是Exchange和Queue

消息队列,提供了FIFO的处理机制,具有缓存消息的能力。rabbitmq中,队列消息可以设置为持久化,临时或者自动删除。

MQ功能

  1. 流量削峰:高并发访问服务器时,为环节服务器压力,使用消息队列做的一个缓冲。把访问的用户放入MQ进行排队

2.应用解耦:一个系统直接调用其他系统,若其他系统发生故障,则整个流程业务就无法完成,若在两个系统之间加上消息队列,主系统先执行完成后才会发消息给队列,有队列去转达到其他系统,而主系统不收其影响。若期间子系统发生异常,队列分配消息给各个系统,同时队列会监督各子系统完成

3.异步处理:A调用B,B去处理,B要花费较长时间进行处理,A要等待B的处理结果。使用MQ之后,A无需等待B,A可以做自己的事情,等到B完成后发消息给队列MQ,再由MQ发消息给A

三、MQ的分类

1.ActiveMQ:高吞吐量,一般不丢失消息

2.Kafka: 适用于大数据,高吞吐量,日志采集功能。 但单机超过64个队列/分区,队列越多,CPU占用越高

4.RocketMQ: 消息领丢失

5.RabbitMQ: 时效性好

四、RabbitMQ

消息中间件,负责接收、存储和转发消息

五、四大核心

  1. 生产者

  2. 交换机

  3. 队列

  4. 消费者

六、六大核心(六大模式)

  1. 简单模式

  2. 工作模式

  3. 发布订阅模式

  4. 路由模式

  5. 主题模式

  6. 发布确认模式

七、工作原理

  1. Broker : 接收和发布消息的应用,即消息实体

  2. Wxchange:交换机(一个消息实体可以对应多交换机)

  3. Queue: 队列 (一个交换机可以对应多个队列)

  4. Channel :信道,即发消息的通道。 每一个生产者会与MQ之间都会建立一个连接Connection ,每一个链接里会有多个信道

  5. Connection : 链接,每次调用MQ都会建立一个链接,链接里有包含多个信道,每次发消息只占用一个信道,而不占用整个连接

  6. 绑定:每一个交换机与队列的链接就叫做绑定

相关推荐
未秃头的程序猿21 小时前
@ConditionalOnMissingBean 把我配好的 RabbitMQ 手动 ack 吃掉了
后端·rabbitmq
一条泥憨鱼1 天前
【RabbitMQ】高级篇
java·分布式·rabbitmq·php·ruby
阳光不锈@4 天前
三大主流消息队列架构设计思想剖析:从 RabbitMQ 到 RocketMQ 的改造实践
kafka·rabbitmq·rocketmq·rabbit改造rocket·去除rabbitmq·rabbitmq改造
catino9 天前
RabbitMQ详解
分布式·rabbitmq·ruby
叶总没有会10 天前
RabbitMQ高级
分布式·rabbitmq
Linux实战笔记11 天前
记一次消息队列选型对比线上排查:Kafka/RabbitMQ/Pulsar 技术选型
kafka·rabbitmq·高并发·pulsar·消息队列选型
张彦峰ZYF11 天前
一条消息的丢与重:Kafka 与 RabbitMQ 可靠投递的确认、位点、死信与幂等全链路
后端·kafka·消息队列·rabbitmq·isr·解耦与削峰·丢失与重复
用户849137175471613 天前
订单超时未支付自动取消实现方案 | 三种方案详解
redis·面试·rabbitmq
蓝胖的四次元口袋13 天前
RabbitMQ知识梳理(2)
分布式·rabbitmq
叶总没有会14 天前
RabbitMQ基础--java客户端
java·rabbitmq·java-rabbitmq