Rabbitmq 学习

本文详细介绍了RabbitMQ的基础概念,包括Broker、Virtualhost、Connection、Channel等组件,以及简单模式、工作模式、发布/订阅模式、路由模式和主题模式等各种消息传递模式。
摘要由CSDN通过智能技术生成

一、Rabbitmq 的基本概念

rabbitmq 架构

 1、Broker :就是 RabbitMQ 服务,用于接收和分发消息,接受客户端的连接,实现 AMQP 实体服务。

2、Virtual host:虚拟节点,用于进行逻辑隔离、当多个不同的用户使用同一个 RabbitMQ server 提供的服务时,可以划分出多个 vhost,每个用户在自己的 vhost 创建 exchange 或 queue 等。

3、Connection: 连接,生产者/消费者与 Broker 之间的 TCP 网络连接。

4、Channel: Channel 是在 connection 内部建立的逻辑连接,如果应用程序支持多线程,通常每个 thread 创建单独的 channel 进行通讯。Channel 作为轻量级的Connection 极大减少了操作系统建立 TCP connection 的开销

5、Message:消息,由Properties和body组成,Properties可是对消息进行修饰,比如消息的优先级,延迟等高级特性,Body则就是消息体的内容。

6、Exchange:交换机,用于根据分发规则、匹配查询表中的 routing key 分发消息,不具备消息存储的功能。类型有:direct、topic、fanout、headers 。

7、Queue:消息队列,保存消息并将它们转发给消费者进行消费。

8、Bindings:exchange 和 queue 之间的虚拟连接,binding 中可以包含 routing key,Binding 信息被保存到 exchange 中的查询表中,用于 message 的分发依据。

9、Routing key:是一个路由规则,虚拟机可以用它来确定如何路由一个特定消息

二、RabbitMQ消息模式

1、简单模式

一个生产者,一个消费者,一个队列,采用默认交换机。可以理解为生产者P发送消息到队列Q,一个消费者C接收。

2、工作模式

一个生产者,多个消费者,一个队列,采用默认交换机。可以理解为生产者P发送消息到队列Q,可以由多个消费者C1、C2进行接收。

3、发布/订阅模式(fanout)

一个生产者、一个 fanout 类型的交换机、多个队列、多个消费者。一个生产者发送的消息会被多个消费者获取。其中 fanout 类型就是发布订阅模式,只有订阅该生产者的消费者会收到消息。

4、路由模式(direct)

一个生产者,一个 direct 类型的交换机,多个队列,交换机与队列之间通过 routing-key 进行关联绑定,多个消费者。生产者发送消息到交换机并且要指定routing-key,然后消息根据这交换机与队列之间的 routing-key 绑定规则进行路由被指定消费者消费。

5、主题模式(topic)

与路由模式基本相同,不同是 交换机的类型是topic 、routing-key 可以模糊指定,不用非要指定确定的值

添加如下routing-key 规则

  • #:匹配一个或者多个词,例如lazy.# 可以匹配 lazy.xxx 或者 lazy.xxx.xxx
  • *:只能匹配一个词,例如lazy.* 只能匹配 lazy.xxx

6、参数模式

交换机类型为 headers 可以携带参数,根据参数进行过滤(设置条件判断,只能设置= 判断)

参考:

RabbitMQ超详细学习笔记(章节清晰+通俗易懂)_robitmq笔记-CSDN博客

官网 

rabbit官网

Spring AMQP

Spring AMQP 中文文档 (springdoc.cn)

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值