RabbitMQ入门

2023-04-18  本文已影响0人  CoderInsight

1,AMQP协议

AMQP是缩写,对应英文:Advance Message Queue Protocol --> 高级消息队列协议。

2,AMQP的核心概念

RabbitMQ基础流程梳理-核心组件图.drawio.png

3,RabbitMQ环境部署

[[RabbitMQ-在线安装-单节点|RabbitMQ部署参考文档]]

(1),交换机的类型

  1. 扇形交换器(Fanout exchange):扇形交换机是最基本的交换机类型,扇形交换机会把能接收到的消息全部发送给绑定在自己身上的队列。因为广播不需要思考,所以扇形交换机处理消息的速度也是所有的交换机类型里面最快的
  2. 直连交换器(Direct exchange):使用广播的方式进行消息的推送,基于直连交换机可以实现RPC【远程过程调用模式】,异步调用。具体的步骤如下:
    • 客户端即是生产者就是消费者,向RPC请求队列发送RPC调用消息,同时监听RPC响应队列。
    • 服务端监听RPC请求队列的消息,收到消息后执行服务端的方法,得到方法返回的结果。
    • 服务端将RPC方法的结果发送到RPC响应队列。
    • 客户端(RPC调用方)监听RPC响应队列,接收到RPC调用结果。
  3. 主题交换器(Topic exchange):Topic Exchange 是 RabbitMQ 中最常用的交换器之一,它根据消息的路由键将消息路由到一个或多个队列中。Topic Exchange 可以使用通配符来匹配路由键。例如,如果一个消息的路由键为 "com.example.stock.usd",那么可以使用 "#.usd" 的匹配模式来将该消息路由到绑定键 "com.example.stock.usd"、"usd" 或者 "com.example.#.usd" 的队列中。这种通配符匹配机制非常适合处理一些动态多变的请求,并且可以在不破坏系统架构的情况下进行扩展和调整。
    • *表示一个单词;
    • #表示任意数量(零个或多个)单词;
  4. 首部交换器(Headers exchange):首部交换机是忽略routing_key的一种路由方式。路由器和交换机路由的规则是通过Headers信息来交换的,这个有点像HTTP的Headers。

5,RabbitMQ消息流转

RabbitMQ基础流程梳理-消息流转图.drawio.png

(1),生产者

1,生产者在推送消息之前,首先会和Server建立 Connection【连接】;
2,然后找到对应Virtual Host【虚拟主机】,然后将带有Routing Key【路由键】消息推送到Exchange【交换机】。
3,Exchange【交换机】接收到信息之后,会和Queue【队列】根据 Routing Key【路由键】进行绑定,然后根据Binding key【绑定键】转发消息到绑定的队列中。

(2),消费者

1,消费者在拉取消息之前,首先会和Server建立 Connection【连接】;
2,然后会请求队列中的消息;
3,消费者确认接收到消息了之后,RabbitMQ会将队列中已经被处理的消息删除

参考连接

  1. 交换机类型的其他详细描述
上一篇 下一篇

猜你喜欢

热点阅读