跳至主内容
版本:4.3

RabbitMQ 支持哪些协议?

RabbitMQ 通过原生方式及插件支持多种消息传递协议。本页面介绍了所支持的协议,并帮助您区分它们。

AMQP 0-9-1

RabbitMQ 最初是为支持 AMQP 0-9-1 而开发的。因此,该协议是代理(broker)支持的首个“核心”协议。我们已经以多种方式扩展了 AMQP 0-9-1。

AMQP 0-9-1 是一种二进制协议,定义了非常强大的消息传递语义。对于客户端而言,实现该协议相对容易,因此有大量的客户端库可供许多不同的编程语言和环境使用。

针对 AMQP 0-9-1 的 RabbitMQ 教程现已提供。

AMQP 1.0

AMQP 1.0 是一种更现代的协议。它是 ISO/IEC 19464OASIS 标准。

尽管名称相似,但 AMQP 1.0 与 AMQP 0-9-1 / 0-9 / 0-8 是截然不同的协议,在网络层面上没有任何共同之处。AMQP 1.0 施加的语义要求较少,因此被更多的消息代理所支持。该协议比 AMQP 0-9-1 更复杂,客户端实现也较少。

AMQP 1.0 已成为 RabbitMQ 4.0 中的“核心”协议。.

RabbitMQ Streams

RabbitMQ Streams 协议允许以极高的吞吐量与 Streams 进行通信。RabbitMQ 通过插件原生支持 Streams 协议。

针对 RabbitMQ Streams 协议的 RabbitMQ 教程现已提供。

MQTT

MQTT 是一种二进制协议,强调轻量级的发布/订阅消息传递,主要针对受限设备上的客户端。它为发布/订阅定义了明确的消息语义,但对于其他消息传递习惯用语则没有明确定义。

RabbitMQ 通过插件原生支持 MQTT 3.1、3.1.1 和 5.0 版本。

STOMP

STOMP 是一种基于文本的消息传递协议,强调(协议的)简单性。它在消息传递语义方面定义较少,但易于实现,且非常容易实现部分功能(它是唯一可以通过 telnet 手动使用的协议)。

RabbitMQ 通过插件支持 STOMP(所有当前版本),其内部是通过代理到 AMQP 0-9-1 实现的。

WebSocket

浏览器应用程序可以使用以下三种应用层协议中的任意一种,通过 WebSocket 协议与 RabbitMQ 通信:

  1. WebSocket 上的 AMQP 1.0
  2. MQTT over WebSocket
  3. STOMP over WebSocket

HTTP

虽然 HTTP 并非真正的消息传递协议,但管理插件支持通过简单的 HTTP API 来发送和接收消息。这主要用于诊断目的,但也可用于无需可靠交付的低容量消息传递。

© . This site is unofficial and not affiliated with VMware.