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
表示消息队列服务器实体