RabbitMQ3.x之五_RabbitMQ中的核心概念

RabbitMQ3.x之五_RabbitMQ中的核心概念

文章目录

  • RabbitMQ3.x之五_RabbitMQ中的核心概念
  • 1. RabbitMQ简介
    • 1. 可互操作
    • 2. 灵活
    • 3. 可靠
  • 2. 核心概念
    • 1. Message(消息)
    • 2. Publisher(生产者)
    • 3. Consumer(消费者)
    • 4. Exchange(交换机)
    • 5. Queue(队列)
    • 6. Binding(绑定)
    • 7. Routing-Key(路由键)
    • 8. Connection(连接)
    • 9. Virtual Host(**虚拟主机**)
    • 10. Broker
    • 10. Broker

1. RabbitMQ简介

RabbitMQ是一个由erlang开发的AMQP(Advarved Message Queue Protocol)的开源实现.

RabbitMQ 是一个可靠且成熟的消息传递和流代理,易于部署在云环境、本地和本地计算机上。它目前被全球数百万人使用。

1. 可互操作

RabbitMQ 支持多种开放标准协议,包括 AMQP 1.0 和 MQTT 5。有多个可用的客户端库,可以与您选择的编程语言一起使用,只需选择一个即可。没有供应商锁定!

2. 灵活

RabbitMQ 提供了许多选项,您可以组合这些选项来定义消息如何从发布者传递到一个或多个使用者。路由、筛选、流式处理、联合身份验证等,应有尽有。

3. 可靠

通过确认消息传递和跨集群复制消息的功能,您可以使用 RabbitMQ 确保您的消息是安全的。

2. 核心概念

1. Message(消息)

在 RabbitMQ 中,消息是指要传递的数据单元,它由消息头和消息体构成。它可以是任何形式的数据,例如文本、JSON、XML 等等。消息由生产者发布到队列中,然后由消费者消费。消息体是不透明的,而消息头则由一系列的可选属性组成,这些属性包括routing-key(路由键)、priority(相对于其他消息的优先权)、delivery-mode(指定消息可能需要持久存性存储)等。

2. Publisher(生产者)

消息的生产者,也是一个向交换器发布消息的客户端应用程序。生产者是发送消息到队列的应用程序。它们创建消息并将其发送到队列,使其可供消费者使用

3. Consumer(消费者)

消费者是接收和处理消息的应用程序。它们从队列中获取消息,并根据业务逻辑对其进行处理。消费者可以是单个进程、线程或者是分布式系统中的一个组件。消息的消费者,表示一个从消息队列中取得消息的客户端应用程序。

4. Exchange(交换机)

交换器,用来接收生产者发送的消息并将这些消息路由给服务器中的队列。Exchange有4种类型:direct(默认),fanout,topic,和headers,不同类型的Exchange转发消息的策略有所区别

5. Queue(队列)

消息队列,用来保存消息直到消息发送给消费者。它是消息的容器,也是消息的终点。一个消息可投入一个或多个队列。消息一直在队列里,等待消费者连接到这个消息队列将其取走。

6. Binding(绑定)

绑定,用于消息队列和交换器直接的关联。一个绑定就是基于路由键将交换器和消息队列连接起来的路由规则,所以可以将交换器理解成一个由绑定构成的路由表。

Exchange 和Queue的绑定可以是多对多的关系。

7. Routing-Key(路由键)

路由键是生产者在将消息发送到交换机时附加的标识符。交换机使用路由键来决定将消息路由到哪个队列。

8. Connection(连接)

网络连接,比如一个TCP连接。

9. Virtual Host(虚拟主机)

虚拟主机是RabbitMQ 中用于隔离应用程序和数据的逻辑容器。每个虚拟主机拥有自己的一组交换机、队列和绑定,使得不同的应用程序能够在同一个 RabbitMQ 实例上独立运行而不会互相干扰。

虚拟主机,表示一批交换器、消息队列和相关对象。虚拟主机是共享相同的身份认证和加密环境的独立服务器域。每个vhost 本质上就是一个 mini版的 RabbitMQ 服务器,拥有自己的队列、交换器、绑定和权限机制。vhost 是 AMQP 概念的基础,必须在连接时指定RabbitMQ 默认的 vhost 是 /

10. Broker

表示消息队列服务器实体

在连接时指定RabbitMQ 默认的 vhost 是 /

10. Broker

表示消息队列服务器实体

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

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

相关文章

关于举办第十五届蓝桥杯全国软件和信息技术专业人才大赛——数字科技创新赛的通知

各相关院校: 为贯彻落实党的二十大报告,加快发展数字经济,促进数字经济和实体经济深度融合,打造具有国际竞争力的数字产业集群的有关精神,工业和信息化部人才交流中心决定举办第十五届蓝桥杯大赛——数字科技创新赛&a…

Untiy 布局控制器Aspect Ratio Fitter

Aspect Ratio Fitter是Unity中的一种布局控制器组件,用于根据指定的宽高比来调整包含它的UI元素的大小。实际开发中,它可以确保UI元素保持特定的宽高比,无论UI元素的内容或父容器的大小如何变化。 如图为Aspect Ratio Fitter组件的基本属性&…

自然语言处理(NLP)全面指南

自然语言处理(NLP)是人工智能领域中最热门的技术之一,它通过构建能够理解和生成人类语言的机器,正在不断推动技术的发展。本文将为您提供NLP的全面介绍,包括其定义、重要性、应用场景、工作原理以及面临的挑战和争议。…

Python图像处理——计算机视觉中常用的图像预处理

概述 在计算机视觉项目中,使用样本时经常会遇到图像样本不统一的问题,比如图像质量,并非所有的图像都具有相同的质量水平。在开始训练模型或运行算法之前,通常需要对图像进行预处理,以确保获得最佳的结果。图像预处理…

#AS,idea,maven,gradle

Jdk,sdk。提前都是需要下好的。 Maven与gradle的思考: 用AS开发app时,gradle本就有,自己也可以指定,AGP同样。要注意gradle,AGP,jdk版本的事情。还有依赖库。 用idea开发网络程序时,也有内置的maven&…

typescript 实现RabbitMQ死信队列和延迟队列 订单10分钟未付归还库存

Manjaro安装RabbitMQ 安装 sudo pacman -S rabbitmq rabbitmqadmin启动管理模块 sudo rabbitmq-plugins enable rabbitmq_managementsudo rabbitmq-server管理界面 http://127.0.0.1:15672/ 默认用户名和密码都是guest。 要使用 rabbitmqctl 命令添加用户并分配权限&#xf…

怎样去保证 Redis 缓存与数据库双写一致性?

解决方案 那么我们这里列出来所有策略,并且讨论他们优劣性。 先更新数据库,后更新缓存先更新数据库,后删除缓存先更新缓存,后更新数据库先删除缓存,后更新数据库 先更新数据库,后更新缓存 这种方法是不推…

在scroll-view中使用input,input键盘弹出时,滚动页面,输入框内容会出现错位问题?

解决办法 <view classpages><view><scroll-view scroll-y"{{sysScroll}}" scroll-top"{{scrollTop}}" class"scroll-hei-2 bg-def">...<input bindfocus"onfocus" bindblur"onblur" placeholder&quo…

RestTemplate 请求响应数据出现乱码问题,RestTemplate 如何解压缩 gzip 数据

文章目录 1.问题描述2.问题分析3.问题解决3.1 Apache HttpClient 依赖3.2 RestTemplate 配置类3.3 测试 1.问题描述 直接通过浏览器访问请求没有问题&#xff0c;但是通过 RestTemplate 访问请求却会出现乱码问题。 2.问题分析 首先我认为是 SpringBoot 版本、JDK 版本、项目结…

HTTP——Cookie

HTTP——Cookie 什么是Cookie通过Cookie访问网站 我们之前了解了HTTP协议&#xff0c;如果还有小伙伴还不清楚HTTP协议&#xff0c;可以点击这里&#xff1a; https://blog.csdn.net/qq_67693066/article/details/136895597 我们今天来稍微了解一下HTTP里面一个很小的部分&…

OpenHarmony中的LLDB高性能调试器

概述 LLDB&#xff08;Low Lever Debugger&#xff09;是新一代高性能调试器。详细说明参考 LLDB官方文档 。 当前OpenHarmony中的LLDB工具是在 llvm15.0.4 基础上适配演进出来的工具&#xff0c;是HUAWEI DevEco Studio工具中默认的调试器&#xff0c;支持调试C和C应用。 工…

主流后端开发语言:JAVA、C、C++、GO、PYTHON对比

软件开发领域&#xff0c;语言本身在各自领域都有适用场景&#xff0c;有许多流行的编程语言可供选择&#xff0c;每种语言都有其独特的特点和适用场景。 Java、C、C、Go 和 Python 这五种主流编程语言&#xff0c;从底层实现、效率、原理、国内外市场占有率、社区活跃度以及开…

【直播课】2024年PostgreSQL CM认证实战培训课程于4月27日开课!

课程介绍 了解关注开源技术&#xff0c;学习PG以点带面 Linux/Andriod&#xff08;操作系统&#xff09;、Apache/Tomcat&#xff08;应用服务器&#xff09;、OpenStack/KVM&#xff08;虚拟化&#xff09;、Docker/K8S&#xff08;容器化&#xff09;、Hadoop&#xff08;大…

postcss安装和使用

要安装和使用 PostCSS&#xff0c;你可以按照以下步骤操作&#xff1a; 步骤一&#xff1a;安装 PostCSS 在项目目录下&#xff0c;通过 npm 初始化一个新的 package.json 文件&#xff08;如果还没有&#xff09;&#xff1a; npm init -y 安装 PostCSS 和必要的插件&#x…

IoTeX(IOTX) 推出首个DEPIN数据平台,蓝筹项目合作进入新时代。

首先来了解一下什么是IoTeX(IOTX) 2024年1月25日&#xff0c;作为由IoTeX驱动的首个DEPIN类别优先数据平台&#xff0c;与蓝筹DePIN项目Helium、Akash、Theta、DIMO、Pocket、Drife、WiFi Map和Streamr合作推出。这一官方发布标志着DePIN&#xff08;去中心化物理基础设施网络&…

西门子 S7-200 SMART 系列十三:实例详解用s7-200 smart 向导配置PID回路参数设定

原文链接&#xff1a;西门子 S7-200 SMART 系列十三&#xff1a;实例详解用s7-200 smart 向导配置PID回路&参数设定 在往期文章中介绍了s7-200 smart的通讯应用&#xff0c;Modbus RTU&#xff0c;S7通信&#xff0c;Profinet通信&#xff0c;TCP通信等&#xff0c;基本包含…

代码学习记录29----贪心最后一天

随想录日记part29 t i m e &#xff1a; time&#xff1a; time&#xff1a; 2024.03.28 主要内容&#xff1a;今天是学习贪心算法最后一天&#xff0c;接下来是针对题目的讲解&#xff1a;1.单调递增的数字;2.监控二叉树; 3. 总结 738.单调递增的数字 968.监控二叉树 总结 To…

sql造数据

造一行常量数据SQL select “col1”,“col2”,“col3” 造多行多列 select concat(AAA, :, "BBB", _PP, :, "XXXXX") as key1,concat({"Id":","12323213",","url":","http://helloworld.com/hello.…

通知中心架构:打造高效沟通平台,提升信息传递效率

随着信息技术的快速发展&#xff0c;通知中心架构作为一种关键的沟通工具&#xff0c;正逐渐成为各类应用和系统中必不可少的组成部分。本文将深入探讨通知中心架构的意义、设计原则以及在实际场景中的应用。 ### 什么是通知中心架构&#xff1f; 通知中心架构是指通过集中管…

Git_常用命令+代码冲突解决方案

文章目录 基本命令的使用查看git的当前版本初始化配置设置用户名及邮箱设置仓库的认证方式查看当前配置 创建仓库从远程服务器克隆仓库创建本地仓库 添加和提交文件工作区域和文件状态工作区域文件状态 查看文件状态及分支信息查看暂存区的内容添加文件提交文件查看提交日志回退…