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

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

文章目录

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

表示消息队列服务器实体

相关推荐
回家路上绕了弯13 小时前
深入解析Agent Subagent架构:原理、协同逻辑与实战落地指南
分布式·后端
用户83071968408216 小时前
Spring Boot 集成 RabbitMQ :8 个最佳实践,杜绝消息丢失与队列阻塞
spring boot·后端·rabbitmq
用户8307196840823 天前
RabbitMQ vs RocketMQ 事务大对决:一个在“裸奔”,一个在“开挂”?
后端·rabbitmq·rocketmq
初次攀爬者4 天前
RabbitMQ的消息模式和高级特性
后端·消息队列·rabbitmq
初次攀爬者6 天前
ZooKeeper 实现分布式锁的两种方式
分布式·后端·zookeeper
让我上个超影吧7 天前
消息队列——RabbitMQ(高级)
java·rabbitmq
塔中妖7 天前
Windows 安装 RabbitMQ 详细教程(含 Erlang 环境配置)
windows·rabbitmq·erlang
断手当码农7 天前
Redis 实现分布式锁的三种方式
数据库·redis·分布式
初次攀爬者7 天前
Redis分布式锁实现的三种方式-基于setnx,lua脚本和Redisson
redis·分布式·后端
业精于勤_荒于稀7 天前
物流订单系统99.99%可用性全链路容灾体系落地操作手册
分布式