(一)RabbitMQ实战——rabbitmq的核心组件及其工作原理介绍

前言

RabbitMQ是一个开源的消息代理软件,它实现了高级消息队列协议(AMQP)标准,提供可靠的消息传递机制。RabbitMQ可以用于在应用程序之间传递消息,实现不同应用系统之间的解耦和通信。它支持多种编程语言,并提供了丰富的功能和插件,使得开发者能够更轻松地构建分布式系统。RabbitMQ支持多种开放标准协议,包括AMQP 1.0和MQTT 5。

本节内容是对rabbitmq核心组件及其工作原理的介绍,方便我们更加清楚的使用rabbitmq作为消息中间键实现我们具体的业务场景。

正文

使用docker安装一个rabbitmq消息中间键

# latest RabbitMQ 3.13
docker run -it --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.13-management

 

rabbitmq的核心组件

①Broker(服务器)

  • rabbitmq的服务器,用于存储消息的服务器。

②Exchange(交换机)

  • 用于接收来自生产者的消息,并将这些消息路由到一个或多个与之绑定的队列。

③Queue(队列)

  • 用于存储消息的组件,为防止消息丢失,可持久化存储。

④Binding(绑定关系)

  • 定义了 Exchange 和 Queue 之间的关系,它指定了消息应该如何从 Exchange 路由到相应的队列。

⑤Connection(通信连接)

  • 客户端和RabbitMQ之间的TCP连接,用于消息的发送(生产者)或者消息的接收(发布者)。

⑥Channel(信道)

  • 在连接中创建的虚拟连接,用于执行大部分的 AMQP操作。

⑦Virtual host

  • 一个逻辑概念,它让 RabbitMQ可以在一台物理机上支持多个独立的消息代理实例。

rabbitmq的工作原理

发布消息:生产者producer通过Connection连接与broker服务器建立一个Channel信道,将消息发送给交换机Exchange,交换机通过路由键router-key将不同主题的消息通过路由键转发给消息队列Queue,消息被存储在Queue队列中,默认是内存存储,服务器重启消息会丢失,生产使用一般会开启持久化存储。

消费消息:消费者consumer通过Connection连接与broker服务器建立一个Channel信道,主动拉取或者通过服务器推送来消费消息。

结语

至此,关于rabbitmq的核心组件及其工作原理的内容到这里就结束了,我们下期见。。。。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/742855.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是Ribbon,怎么实现负载均衡?

一. Ribbon 是 Netflix 公司开发的一个负载均衡器(Load Balancer)工具,主要用于在分布式系统中进行客户端侧的负载均衡。它可以集成到微服务架构中的客户端,通过在客户端实现负载均衡算法,来分发请求到多个服务提供者…

彩虹知识付费模板MangoA全开源包含秒杀/抽奖/社群/推送等功能

二次开发增加以下功能每日秒杀每日签到官方社群多级分销在线抽奖项目投稿 每日秒杀 每日签到 官方社群 多级分销 在线抽奖 项目投稿 下载地址:https://pan.xunlei.com/s/VNstMfOecGliiqew7UIorsOnA1?pwdhywi#

<支持向量机算法(SVM:Support Vector Machine)>——《机器学习算法初识》

目录 一、⽀持向量机(SVM)算法 1 SVM算法导⼊ 2 SVM算法定义 2.1 定义 2.2 超平⾯最⼤间隔介绍 2.3 硬间隔和软间隔 2.3.1 硬间隔分类 2.3.2 软间隔分类 3 ⼩结 二、 SVM算法api初步使⽤ 三、 SVM算法原理 1 定义输⼊数据 2 线性可分⽀持向量机 3 SVM的计算过程与算…

Rust 构建开源 Pingora 框架可以与nginx媲美

一、概述 Cloudflare 为何弃用 Nginx,选择使用 Rust 重新构建新的代理 Pingora 框架。Cloudflare 成立于2010年,是一家领先的云服务提供商,专注于内容分发网络(CDN)和分布式域名解析。它提供一系列安全和性能优化服务…

亚马逊云科技 Lambda 运行selenium

有些定时任务需要使用自动化测试的工具,如果使用亚马逊云科技 Lambda来实现这个功能的话,那么就需要图形框架,而我们知道lambda其实是一个虚拟机,而且按照系统级别依赖比较困难。所以这里选择使用容器的形式进行发布。 在dockerf…

【原创】[新增]ARCGIS之土地报备Txt、征地Xls格式批量导出Por旗舰版

一、软件简介 2024年新增旗舰版软件,本软件全新界面开发,保留原有软件功能及一些使用习惯,并集成了现已有的所有定制格式的支持,并增加自定义格式的导出;做到1N2(即为1种通用版本N种定制格式导出txt、Xls&a…

机器学习模型—分类回归树(CART)

机器学习模型—分类回归树(CART) **CART(分类和回归树)**是决策树算法的一种变体。它可以处理分类和回归任务。Scikit-Learn使用分类和回归树 (CART) 算法来训练 决策树。CART 最初由 Leo Breiman、Jerome Friedman、Richard Olshen 和 Charles Stone 于 1984 年制作。 CAR…

c++的STL(4)-- list容器

list容器概述 list的容器的实现是使用双向链表的形式的数据结构实现的。(也有的编译器使用双向循环链表) 链表是一种数据结构,这种结构与数组的结构不同,链表的每个节点都存放有特定个数的指针(双向链表:两个(一个指向前面的元素,另一个指向…

百度现在应该怎么去做搜索SEO优化?(川圣SEO)蜘蛛池

baidu搜索:如何联系八爪鱼SEO? baidu搜索:如何联系八爪鱼SEO? baidu搜索:如何联系八爪鱼SEO? 百度搜索引擎优化(SEO)是一种通过优化网站,提升网页在百度搜索结果中的排…

使用Golong轻松实现JWT身份验证

使用Golong轻松实现JWT身份验证 JSON Web Tokens (JWT)是一种流行的安全方法,用于在两个方之间表示声明。在Web应用程序领域,它们通常用作从客户端向服务器传输身份信息(声明)的方式。本教程将引导您逐步实现Go应用程序中的JWT身份…

ffmpeg 从avio_read 到 file_read

############################################# author: hjjdebug date: 2024年 03月 13日 星期三 15:39:30 CST description: ffmpeg 从avio_read 到 file_read ############################################# int nRet avio_open(&pReadCtx, "200M.ts"),…

开源生态与软件供应链研讨会

✦ 日程安排 开源生态与软件供应链研讨会 时间: 2024年3月12日(星期二)13:30 – 17:00 地点: 复旦大学江湾校区二号交叉学科楼E1021 联系人: 陈碧欢(bhchenfudan.edu.cn) 点击文末“阅读原文”或扫描下方二维码进入报名通…

ROS 语音交互(二)nlp

目录 背景: 一、模型选择 二、操作流程 三、核心代码展示 背景: 成功设置自己的知识库,语音交互问答会优先选择自己的知识库的答案进行回答,减少了耗时 一、模型选择 商汤 商量日日新 二、操作流程 文档中心 | 日日新开放…

Node.js的事件驱动模型(非阻塞I/O)

Node.js的事件驱动模型是它能高效处理并发的关键。这个模型允许Node.js在单个线程上运行,同时通过非阻塞I/O操作来处理成千上万的并发连接。下面是对Node.js事件驱动模型的详细解释: 事件循环(Event Loop) 事件循环是Node.js事件…

ChatGLM3 源码解析(五)

PrefixEncoder # 根据前缀 ID 获取前缀嵌入 # 前缀嵌入将连接到分头之后的 K 和 V 上 class PrefixEncoder(torch.nn.Module):"""The torch.nn model to encode the prefixInput shape: (batch-size, prefix-length)Output shape: (batch-size, prefix-length,…

2024 前端javaScript+ES6

JavaScript 基础 1、基本数据类型: 1.1 基本数据类型: Number(数值):表示数字,包括整数和浮点数。例如:5、3.14。 String(字符串):表示文本数据&#xff…

视觉图像处理和FPGA实现第三次作业--实现一个加法器模块

一、adder模块 module adder(ina, inb, outa); input [5:0] ina ; input [5:0] inb ; output [6:0] outa ;assign outa ina inb; endmodule二、add模块 module add(a,b,c,d,e); input [5:0] a ; input [5:0] b ; input [5:…

阿里云国际修改域名绑定的DDoS高防服务器

本文九河云介绍当您的业务需要绑定多个DDoS高防实例,或者已有的DDoS高防实例已过期需要更换时,如何修改域名接入的配置,才能在业务不中断的前提下平滑迁移。 需绑定多个DDoS高防实例的场景 当网站业务有如下业务需求时,可以为域…

PTA L2-020 功夫传人

一门武功能否传承久远并被发扬光大,是要看缘分的。一般来说,师傅传授给徒弟的武功总要打个折扣,于是越往后传,弟子们的功夫就越弱…… 直到某一支的某一代突然出现一个天分特别高的弟子(或者是吃到了灵丹、挖到了特别的…

netty服务器监听和接收数据

1.pom依赖 <dependency><groupId>io.netty</groupId><artifactId>netty-all</artifactId><!-- 根据需要选择版本 --><version>4.1.86.Final</version> </dependency>2.配置属性 application.properties #启动端口 ser…