(一)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.hqwc.cn/news/536459.html

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

相关文章

Purple Pi OH鸿蒙开发板7天入门OpenHarmony开源鸿蒙教程【六】

今天我们来从OpenHarmony简介、环境搭建、创建第一个OpenHarmony项目等方面开始OpenHarmony应用开发的第一步。 一. OpenHarmony简介 OpenHarmony 是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能…

智慧城市与数字经济:共创城市新价值

随着科技的快速发展,智慧城市与数字经济已成为推动城市现代化进程的重要引擎。它们不仅提升了城市治理的效率和公共服务水平,还为城市经济发展注入了新的活力。本文旨在探讨智慧城市与数字经济如何共同创造城市新价值,并分析其面临的挑战与发…

改三行代码就发了SCI一区?基于全面学习策略的Jaya算法!学会你也可以!CEC2017效果极佳!

声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~ 目录 原始Jaya算法 改进Jaya算法策略详解&…

vscode通过多个跳板机连接目标机(两种方案亲测成功)

1、ProxyJump(推荐使用) 需要OpenSSH 7.3以上版本才可使用,可用下列命令查看: ssh -V ProxyJump命令行使用方法 ssh -J [email protected]:port1,[email protected]:port2 一层跳板机: ssh dst_usernamedst_ip -…

【海贼王的数据航海】探究二叉树的奥秘

目录 1 -> 树的概念及结构 1.1 -> 树的概念 1.2 -> 树的相关概念 1.3 -> 树的表示 1.4 -> 树在实际中的运用(表示文件系统的目录树结构) 2 -> 二叉树概念及结构 2.1 -> 二叉树的概念 2.2 -> 现实中的二叉树 2.3 -> 特殊的二叉树 2.4 ->…

Window API 使用的一些注意事项

文章目录 1、LPCWSTR类型2、LPCTSTR类型3、LPCSTR类型4、LPCTSTR和LPCWSTR区别5、LPCTSTR和LPCSTR、LPCWSTR三者区别6、_T(" ")7、DWORD类型转换为std::wstring类型8、char类型转换为LPCSTR类型9、获取当前时间戳(毫秒)10、std::wstring和LPCSTR区别11、std::wstring…

分布式链路追踪(一)SkyWalking(1)介绍与安装

一、介绍 1、简介: 2、组成 以6.5.0为例,该版本下Skywalking主要分为oap、webapp和agent三部分,oap和webapp分别用于汇总数据和展示,这两块共同组成了Skywalking的平台;agent是探针,部署在需要收集数据的…

Unity开发中Partial 详细使用案例

文章目录 **1. 分割大型类****2. 与 Unity 自动生成代码协同工作****3. 团队协作****4. 共享通用逻辑****5. 自定义编辑器相关代码****6. 配合 Unity 的 ScriptableObjects 使用****7. 多人协作与版本控制系统友好** 在 Unity 开发中, partial 关键字是 C# 语言提供…

rabbitmq-spring-boot-start配置使用手册

rabbitmq-spring-boot-start配置使用手册 文章目录 1.yaml配置如下2.引入pom依赖如下2.1 引入项目resources下libs中的jar包依赖如下2.2引入maven私服依赖如下 3.启动类配置如下4.项目中测试发送消息如下5.项目中消费消息代码示例6.mq管理后台交换机队列创建及路由绑定关系如下…

Github 2024-03-13 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-03-13统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目2Python项目2非开发语言项目2HTML项目1CSS项目1Dart项目1TypeScript项目1Go项目1JavaScript项目1《Hello 算法》:动画图解、一键运行的…

【论文撰写】参考文献引用

1、交叉引用 当在撰写论文时往往需要在不同的位置引用参考文献,并且希望其在参考文献顺序与数量变动后也动态改变。这时,就需要word中的【引用】|【交叉引用】 在需要引用参考文献的地方点击后,选择对应的文献 将会得到以下效果 在将其设置为…

谷粒商城——分布式基础(全栈开发篇第一部分)

文章目录 一、服务治理网路数据支撑日志处理ELK应用监控集成工具开发工具 二、环境创建1、虚拟机创建2、虚拟机安装docker等1. 安装docker1. 配置阿里docker3.docker安装mysql错误 4、docker安装redis 3、软件1.Maven 阿里云镜像1.8jdk2、idea lombokmybatisX ,3、 …