消息中间件之RabbitMQ消息传递模式及交换机类型

RabbitMQ是一个服务器(broker),通过connection与客户端建立连接,使用channel进行消息交互。message由properties和Body组成,VirtueHost提供逻辑隔离。exchange根据routingkey将消息发送到queue,bindings定义路由规则。消息模式包括简单、工作、轮询、公平分发、发布订阅、路由和主题模式。RabbitMQ常用于解耦、削峰、异步处理、分布式事务、流量监控等多个场景。

RabbitMQ核心组成部分

RabbitMQ组件图

在这里插入图片描述
说明:

server: 又称broker,接收客户端的连接,实现AMQP实体服务,安装RabbitMQ服务器。
connection: 连接,客户端与broker服务的基于TCP/IP协议的三次握手和四次挥手。
channel:网络信道,几乎所有的操作都在信道中完成,主要负责消息的读写,客户端可以建立多个信道,每个channel代表一个会话
message: 消息,服务与应用程序之间传送的数据,主要由properties和Body组成,Properties主要是用于修饰消息的,比如消息的优先级、延迟等高级特性,Body则是消息体。
VirtureHost: 虚拟地址,用于逻辑隔离,最上层的消息路由,一个交换机可以包含若干个exchange和queue,同一个虚拟主机里面不能有相同的exchange和queue,相当于磁盘分区,主要用于做多个业务之间的隔离区分,防止杂乱无章。
exchange:交换机,接收消息,根据一定的routing key将消息发送到绑定的队列中去,不负责存储消息,若没有对应的路由key,则直接发送到的队列中,说白了就是负责接收、发送消息给交换机。
Bindings:exchange和queue之间的虚拟绑定,bindings中可以包含多个路由key
Routing key:路由key,是一个路由规则,虚拟机可以通过路由绑定一个特定的消息。
queue:队列,保存消息并将它们发送给消费者。

RabbitMQ支持的消息模式

参考官网:https://www.rabbitmq.com/getstarted.html

1.简单模式simple

在这里插入图片描述
简单模式组成主要:
P: 生产者
queue:队列
C: 消费者

2.工作模式

在这里插入图片描述
其主要和简单模式一样,都是使用默认的交换机,交换机类型路由规则为Direct。

轮询模式(Round-Robin)

特点:一个消费者消费一条,按均分配,该模式接收消息时,当有多个消费者接收消息时,是对称均等消费,不会因为服务器或者网络问题少消费,多个消费者之间是对等的。不会造成数据倾斜。

公平分发

特点:根据消费者的消费能力进行公平分发,处理快的处理的多,处理慢的处理的少,按劳分配,可能会造成数据倾斜。

3.发布订阅模式

在这里插入图片描述
这是一种发布订阅模式,交换机类型为fanout(广播模式)
组成部分:
生产者、交换机、队列、多个消费者

4.路由模式

在这里插入图片描述
路由模式:就是在发布订阅模式基础上加了一些过滤条件,所以根据对应的过滤机制将对应的消息发送给对应的消费者消费。
特点:

  1. 交换机类型必须为direct,若为广播模式fanout模式,那么luyou就没有过滤的意义。
  2. 一个交换机可以绑定多个路由key,一个路由key可以绑定多个队列。

5.主题Topic模式

在这里插入图片描述
基于3、4模式的基础衍生出主题模式,类似于模糊匹配一般,使用通配符进行模糊匹配路由规则:
.# :代表有0个或者多个多级的模糊,例如com.# 的路由key可以匹配com或者com.xxx.xxx.xxx…这类的,即以com开头的所有绑定队列,#可有可无

.* :代表只有一级匹配,例如com.* ,可以匹配com.xxx ,但是至少要匹配一条。

特点:

  1. 交换机类型必须为topic模式
  2. 模糊匹配

6.RPC拉取模式

在这里插入图片描述

7.发布确认机制

RabbitMQ使用场景

  1. 解耦、削峰,异步
    在这里插入图片描述
  2. 流量削峰
  3. 分布式事物的可靠消费和生产
  4. 索引缓存、静态化处理数据同步
  5. 流量监控
  6. 日志监控
  7. 下单、订单分发、抢票
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值