自学内容网 自学内容网

RabbitMQ 整合 SpringBoot

概述

  1. 大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力、流量削峰
    
  2. 消息服务中两个重要概念:
    消息代理(`message broker`)和目的地(`destination`)
    当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目的地。
    
  3. 消息队列主要有两种形式的目的地
    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 的 队列
  • 常用三种类型
    • dirctDirect Exchange(直连交换器) 【单播】完全匹配路由键的队列
      • image-20241207003055398

    • fanoutFanout Exchange(扇出交换器)广播】消息分发所有绑定队列上,不处理路由键
      • image-20241207003049286

    • topicTopic Exchange(主题交换器)模式匹配
      • #:配置0个或者多个单词
      • *:匹配一个单词
      • image-20241207003038106

         
    • headers:很少使用
    • system:很少使用
✨队列 Queue
  • 存储消息的容器,FIFO
  • 缓冲消息+持久化
绑定 Binding
  • 用于消息队列和交换器之间的关联。
  • 一个绑定就是基于路由键将交换器和消息队列连接起来的路由规则,所以可以将交换器理解成一个由绑定构成的路由表。
  • Exchange 和Queue的绑定可以是多对多的关系。
连接 Connection
  • 网络连接,比如一个TCP连接
信道 Channel
  • 信道,多路复用连接中的一条独立的双向数据流通道。信道是建立在真实的TCP连接内的虚拟连接,AMQP 命令都是通过信道发出去的,不管是

原文地址:https://blog.csdn.net/softshow1026/article/details/144459964

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!