RabbitMQ 整合 SpringBoot
概述
-
大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力、流量削峰
-
消息服务中两个重要概念: 消息代理(`message broker`)和目的地(`destination`) 当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目的地。
-
消息队列主要有两种形式的目的地 1. 队列(`queue`):点对点消息通信(`point-to-point`) 2. 主题(`topic`):发布(`publish`)/订阅(`subscribe`)消息通信
RabbitMQ 架构图
概念
生产者 Producer
生产者是消息的发送方,它将消息发送到 RabbitMQ 的交换器中。
✨消息 Message
- 消息=消息头+消息体,根据routekey发送到指定的交换机 Exchange
- 消息头:含有各种属性 routing-key(路由键)、priority(优先级)、delivery-mode(指出该消息可能需要持久性存储)等。
✨消息代理 Broker
- 消息传递的中间件服务器,负责接收、存储和转发消息,作用类似邮局🏣
- 消息存储+消息路由
- Broker = VHost1+Vhost2+Vhost3+.....
- Virtual Host = Exchange + Queue +Binding
虚拟主机 Virtual Host
-
逻辑分组机制,将不同的用户、队列、交换器等资源隔离开来
-
Virtual 即 VHost
-
默认目录 /
✨交换机 Exchange
- 绑定 routekey接收消息并发送到符合routekey 的 队列
- 常用三种类型
- ✨dirct:Direct Exchange(直连交换器) 【单播】完全匹配路由键的队列
- ✨fanout:Fanout Exchange(扇出交换器)【广播】消息分发所有绑定队列上,不处理路由键
- ✨topic:Topic Exchange(主题交换器)【模式匹配】
#
:配置0个或者多个单词*
:匹配一个单词
- headers:很少使用
- system:很少使用
- ✨dirct:Direct Exchange(直连交换器) 【单播】完全匹配路由键的队列
✨队列 Queue
- 存储消息的容器,FIFO
- 缓冲消息+持久化
绑定 Binding
- 用于消息队列和交换器之间的关联。
- 一个绑定就是基于路由键将交换器和消息队列连接起来的路由规则,所以可以将交换器理解成一个由绑定构成的路由表。
- Exchange 和Queue的绑定可以是多对多的关系。
连接 Connection
- 网络连接,比如一个TCP连接
信道 Channel
- 信道,多路复用连接中的一条独立的双向数据流通道。信道是建立在真实的TCP连接内的虚拟连接,AMQP 命令都是通过信道发出去的,不管是
原文地址:https://blog.csdn.net/softshow1026/article/details/144459964
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!