RabbitMQ 初步认识

目录

[1. 基本概念](#1. 基本概念)

[2. RabbitMq 的工作流程](#2. RabbitMq 的工作流程)

[3. 协议](#3. 协议)

[4. 简单的生产者, 消费者模型](#4. 简单的生产者, 消费者模型)

[4.1 我们先引入 rabbitmq 的依赖](#4.1 我们先引入 rabbitmq 的依赖)

[4.2 生产者](#4.2 生产者)

[4.3 消费者](#4.3 消费者)


1. 基本概念

  • Pruducer : 生产者, 产生消息
  • Consumer : 消费者, 消费消息
  • Broker : RabbitMq Server, 用来接收和发送消息
  • Connection : 是客户端和服务端的 tcp 连接, 负责传输客户端和服务端之间的所有数据和控制信息
  • Channel : 通道, 一个 Connection 可以有多个通道, 主要作用是将消息的读写操作复用到同一个 tcp 连接上, 这样可以减少建立和关闭连接的开销, 提高性能
  • Exchange : 交换机, 将消息路由到对应的 Queue
  • Queue : 队列, RabbitMq 中用来存放消息的内部对象
  • BindingKEy (PoutingKey) : 生产者在发送消息时, 会发送一个 BindingKey, 用来匹配交换机, 交换机与队列之间的绑定也是通过 BindingKey 实现的, 一个交换机可以绑定多个队列, 统一交换机可以与不同的队列进行绑定, 使用的 BindingKey 是不同的
  • Virtual host : 虚拟主机, 为消息队列提供了逻辑上的隔离机制

2. RabbitMq 的工作流程

  1. Producer 生产了一条消息
  2. Producer 连接到 RabbitMq Broker, 建立一个连接(Connection), 开启一个信道(Channel)
  3. Producer 声明一个交换机(Exchange), 路由信息
  4. Producer 声明一个队列(Queue), 存放信息
  5. Producer 发送消息至 RabbitMq Broker
  6. RabbitMq Broker 接收消息, 并存入响应的队列(Queue)中, 如果未找到相对应的队列, 则根据生产者的配置, 选择丢弃或者回退给生产者

3. 协议

  • 使用 AMQP 协议, 是一种高级消息队列协议, AMQP 定义了一套确定的消息交换功能, 包括交换器(Exchange), 队列(Queue)等. 这些组件共同工作, 使得生产者能够将消息发送到交换器. 然后由队列接收并等待消费者接收. AMQP还定义了一个网络协议, 允许客户端应用通过该协议与消息代理和 AMQP 模型进行交互通信

4. 简单的生产者, 消费者模型

4.1 我们先引入 rabbitmq 的依赖

4.2 生产者

4.3 消费者

相关推荐
難釋懷19 小时前
分布式锁-redission锁重试和WatchDog机制
分布式
AC赳赳老秦20 小时前
DeepSeek 辅助科研项目申报:可行性报告与经费预算框架的智能化撰写指南
数据库·人工智能·科技·mongodb·ui·rabbitmq·deepseek
kobe_t21 小时前
分布式定时任务系列14:XXL-job的注册模型
分布式
Knight_AL1 天前
线程池满了怎么办?用 RabbitMQ 做任务补偿不丢失
分布式·rabbitmq·ruby
坊钰1 天前
【Rabbit MQ】Rabbit MQ 介绍
java·rabbitmq
難釋懷1 天前
分布式锁-redission锁的MutiLock原理
分布式
小北方城市网1 天前
RabbitMQ 生产级实战:可靠性投递、高并发优化与问题排查
开发语言·分布式·python·缓存·性能优化·rabbitmq·ruby
乾元1 天前
拒绝服务的进化:AI 调度下的分布式协同攻击策略
人工智能·分布式
听麟1 天前
HarmonyOS 6.0+ PC端多设备文件拖拽协同开发实战:手眼同行增强与分布式软总线深度应用
分布式·华为·harmonyos
前端世界1 天前
鸿蒙分布式网络性能优化实战:从通信建连到多设备协同
网络·分布式·harmonyos