RabbitMQ运转流程
生产者发送消息的过程
- 生产者连接到RabbitMQ Broker(相当于是一个RabbitMQ服务器),建立一个连接(Connection),开启一个信道(Channel)。
- 生产者声明一个交换器(Exchange),并设置相关属性,比如交换机类型、是否持久化等。
- 生产者生命一个队列(Queue)并设置相关属性,比如是否排他、是否持久化、是否自动删除等。
- 生产者通过路由键(RoutingKey)将交换器何队列绑定在一起。
- 生产者发送消息给RabbitMQ Broker,其中包含路由键、交换器等信息。
- 相应的交换器根据接收到的路由键查找相匹配的队列。
- 如果找到,则将从生产者发送过来的消息存入相应的队列中。
- 如果没有找到,则根据生产者配置的属性选择丢弃还是回退给生产者。
- 关闭信道。
- 关闭连接。
消费者接受消息的过程
- 消费者连接到RabbitMQ Broker,建立一个连接(COnnection),开启一个信道(Channel)。
- 消费者向RabbitMQ Broker请求消费相应队列中的消息,可能会设置相应的回调函数,以及做一些准备工作。
- 等待RabbitMQ Broker回应并投递相应队列中的消息,消费者接收消息。
- 消费者确认(ack)接收到的消息。
- RabbitMQ从队列中删除相应已经被确认的消息。
- 关闭信道。
- 关闭连接。
RabbitMQ运转流程的更多相关文章
- RabbitMQ 运转流程
生产者发送消息 1.生产者连接到 RabbitMQ Broker,建立一个连接(Connection),开启一个信道(Channel) 2.生产者声明一个交换器,并设置相关属性,比如交换机类型.是否持 ...
- RabbitMQ 消息流程、AMOP 概念
AMOP Server:Broker.RabbitMQ Server,实现 AMOP 实体服务,接受客户端的连接 Conneciton:链接,应用程序与 Server 的网络连接 Channel:网络 ...
- javaweb项目运转流程
做web项目,不仅要会做,还需要了解其工作流程,为什么这么做!这些知道了.其他的都是渣渣.上图!对于web 项目了解他的运行流程之后,基本其他的都不是问题.web项目还是很简单的 这是简化的开发时常用 ...
- RabbitMQ知识梳理
RabbitMQ 基本概念 交换机类型: RabbitMQ 运转流程: AMQP协议 入门使用 安装环境: 交换机和队列: 进阶使用 消息去从 消息确认投递 消息防止丢失 过期时间 (TTL) 消息分 ...
- RabbitMQ基础教程
目录 RabbitMQ相关概念介绍 生产者和消费者 队列 交换器.路由键.绑定 交换器类型 RabbitMQ运转流程 AMQP协议介绍 AMQP生产者流转过程 AMQP消费者流转过程 安装Rabbit ...
- .Net RabbitMQ实战指南——RabbitMQ相关概念介绍
什么是消息中间件 消息(Message)是指在应用间传送的数据.消息可以非常简单,比如只包含文本字符串.JSON等,也可以很复杂,比如内嵌对象. 消息队列中间件(Message Queue Middl ...
- RabbitMQ入门案例
RabbitMQ入门案例 Rabbit 模式 https://www.rabbitmq.com/getstarted.html 实现步骤 构建一个 maven工程 导入 rabbitmq的依赖 启动 ...
- (2)RabbitMQ架构设计与应用场景
1.什么是消息中间件? 消息是指应用间传输的数据.消息体包括文本字符串.Json.内嵌对象等.消息中间件是基于队列模型实现异步和同步传输数据的.作用:解耦,冗余(存储).扩展性.削峰.可恢复性.顺序保 ...
- Rabbit MQ 基础入门
Rabbit MQ 学习(一)基础入门 简介 RabbitMQ 简介 为什么选择 RabbitMQ RabbitMQ 的模型架构是什么? AMQP 协议是什么? AMQP 常用命令 概念 生产者和消费 ...
随机推荐
- 关于python logging模块读文档的几个心得
1. logger是分层级的,root是所有logger的祖先. 2. root这个logger在执行logging.warning() 等一系列方法和basicConfig()的时候才会被初始化ha ...
- 0003SpringBoot整合SpringDataJPA
SpringBoot整合SpringDataJpa步骤如下: 1.添加data-jpa起步依赖(pom.xml) 2.添加数据库驱动坐标.添加Junit起步依赖(pom.xml) 3.添加数据库连接信 ...
- laravel本地开发环境的安装及配置 - Windows:安装 Laravel Homestead 虚拟机
一.安装 VirtualBox-5.2.22-126460-Win.exe 和 vagrant_2.2.2_x86_64.msi(可视化安装包安装); 安装在D盘 二.导入 Homestead Vag ...
- Nginx防盗链模块ngx_http_referer_module
ngx_http_referer_module⽤用来阻⽌止Referer⾸首部⽆无有效值的请求访问,可防⽌止盗链指令:12.1 valid_referers定义 referer ⾸首部的合法可⽤用值, ...
- python_tkinter事件
1.事件绑定函数(3个) 组件.bind('事件类型',事件函数) 为一个组件绑定一个操作 组件.bind_class('组件类型','事件类型',事件函数) 为一个类组件绑定一个操作 组件.bind ...
- Selenium+Java+Jenkins+TestNg
注意:各webdriver版本都有对应的浏览器版本 如果启动出现问题,可能是driver路径错误,需要使用System.setProperty("webdriver.firefox.bin& ...
- date对象获取get
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 第二章 C#语法快速热身
C#语法快速热身 语法 if(条件表达式){ 代码块 } 语法 if(条件表达式){ 代码块 }else{ 代码块2 } 语法 if(条件表达式1){ 代码块1 if(条件表达式1)){ }else{ ...
- const int* p
若纠结于const int* p,int const* p,int* const p这三个指针,可以看视频 https://www.icourse163.org/learn/BUPT-10035640 ...
- P3306 [SDOI2013]随机数生成器
思路:\(BSGS\) 提交:\(1\)次 题解: 原式可以化为\[x_{i+1}+\frac{b}{a-1}=a(x_{i}+\frac{b}{a-1})\mod p\] 这不是等比数列吗? \[x ...