AMQP技术术语

简介: 什么是AMQPAMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同开发语言等条件的限制。

什么是AMQP

AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同开发语言等条件的限制。Erlang中的实现有 RabbitMQ等。高级消息队列协议使得遵从该规范的客户端应用和消息中间件服务器的全功能互操作成为可能。AMQP高级消息队列,说白了就是一个开源的消息中间件。它能解决不同组件、模块、系统间消息通信

技术术语

AMQP模型(AMQP Model):一个由关键实体和语义表示的逻辑框架,遵从AMQP规范的服务器必须提供这些实体和语义。为了实现本规范中定义的语义,客户端可以发送命令来控制AMQP服务器。

连接(Connection):一个网络连接,比如TCP/IP套接字连接。

会话(Session):端点之间的命名对话。在一个会话上下文中,保证“恰好传递一次”。

信道(Channel):多路复用连接中的一条独立的双向数据流通道,为会话提供物理传输介质。

客户端(Client):AMQP连接或者会话的发起者,AMQP是非对称的,客户端生产和消费消息,服务器存储和路由这些消息。

服务器(Server):接受客户端连接实现AMQP消息队列和路由功能进程,也称为“消息代理”。

端点(Peer):AMQP对话的任意一方,一个AMQP连接包括两个端点(一个是客户端,一个是服务器)。

消息头(Header):描述消息数据属性的一种特殊段。

消息体(Body):包含应用程序数据的一种特殊段,消息体段对于服务器来说完全不透明——服务器不能查看或者修改消息体。

消息内容(Content):包含在消息体段中的的消息数据

交换器(Exchange):服务器中的实体,用来接收生产者发送的消息并将这些消息路由给服务器中的队列

交换器类型(Exchange Type):基于不同路由语义的交换器类。

消息队列(Message Queue):一个命名实体,用来保存消息直到发送给消费者

绑定器(Binding):消息队列和交换器之间的关联

绑定器关键字(Binding Key):绑定的名称,一些交换器类型可能使用这个名称作为定义绑定器路由行为的模式

路由关键字(Routing Key):一个消息头,交换器可以用这个消息头决定如何路由某条消息。

持久存储(Durable):一种服务器资源,当服务器重启时,保存的消息数据不会丢失。

临时存储(Transient):一种服务器资源,当服务器重启时,保存的消息数据会丢失。

持久化(Persistent):服务器将消息保存在可靠磁盘存储中,当服务器重启时,消息不会丢失。

非持久化(Non-Persistent):服务器将消息保存在内存中,当服务器重启时,消息可能丢失。

消费者(Consumer):一个从消息队列中请求消息的客户端应用程序

生产者(Producer):一个向交换器发布消息的客户端应用程序

虚拟主机(Virtual Host)(broker):一批交换器、消息队列和相关对象。虚拟主机是共享相同的身份认证和加密环境的独立服务器域,客户端应用程序在登录到服务器之后,可以选择一个虚拟主机

消息协商器(Message Broker),它在TCP/IP等端口监听AMQ消息。

RabbitMQ用户的一些相关角色

在RabbitMQ中,用户角色可分为五类,超级管理员, 监控者, 策略制定者, 普通管理者以及其他。

  1. 超级管理员(administrator):可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。
  2. 监控者(monitoring):可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
  3. 策略制定者(policymaker):可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息。
  4. 普通管理者(management):仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
  5. 其他:无法登陆管理控制台,通常就是普通的生产者和消费者。

 

RabbitMQ用户权限

用户权限指的是用户对exchange,queue的操作权限,包括配置权限读写权限。配置权限会影响到exchange,queue的声明和删除;读写权限影响到从queue里取消息,向exchange发送消息以及queue和exchange的绑定(bind)操作。
例如:将queue绑定到某exchange上,需要具有queue的可写权限,以及exchange的可读权限;向exchange发送消息需要具有exchange的可写权限;从queue里取数据需要具有queue的可读权限。

 

 

 

 

 

 

 

 

 

 

 

 

 

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
相关文章
|
4月前
|
消息中间件 存储 开发者
实现AMQP的高效消息传递机制
【8月更文第28天】高级消息队列协议 (AMQP) 是一个为消息中间件设计的开放标准应用层协议。它为消息传递系统提供了标准化的方法,从而确保了高性能和可靠性。本文将详细介绍AMQP中的一些关键特性,并通过示例代码展示如何利用这些特性。
135 2
|
6月前
|
消息中间件 存储 负载均衡
RocketMQ-术语详解(通俗易懂)
RocketMQ-术语详解(通俗易懂)
47 1
|
网络协议 物联网 开发者
详细介绍 MQTT 的工作原理,包括 MQTT 协议的特点、核心概念以及消息传递的流程
详细介绍 MQTT 的工作原理,包括 MQTT 协议的特点、核心概念以及消息传递的流程
3542 1
|
7月前
|
消息中间件 存储 物联网
AMQP(Advanced Message Queuing Protocol)是一种标准化的消息队列协议,用于异步通信和消息传递
AMQP是开放标准的消息队列协议,确保异步通信中的消息路由、可靠性和灵活性。它支持持久化、确认机制,防止消息丢失,允许灵活路由与定制,适用于多领域,如企业应用、云计算和物联网。
160 0
|
网络性能优化
MQTT 核心概念
MQTT 核心概念
58 1
|
消息中间件 存储 Java
【图解RabbitMQ-2】图解JMS规范与AMQP协议是什么
【图解RabbitMQ-2】图解JMS规范与AMQP协议是什么
146 0
EMQ
|
存储 数据采集 监控
Sparkplug 规范中涉及 MQTT Broker 的 5 个关键概念
Sparkplug 是为 SCADA 系统定制的工业物联网通信协议,目的是标准化 MQTT 在工业应用中的使用并增加设备和系统之间的互操作性。本文探讨了其中与 MQTT Broker 相关的五个关键概念。
EMQ
249 0
|
消息中间件 API
ActiveMQ系列(三)-------- 术语
目的地,JMS Provider(消息中间件)负责维护,用于对 Message 进行管理的对象。
71 0
|
消息中间件 RocketMQ
RocketMq名词概念
RocketMq名词概念
162 0
|
消息中间件 存储 负载均衡
一篇文章讲透彻了AMQP协议
一篇文章讲透彻了AMQP协议
4803 0
一篇文章讲透彻了AMQP协议