跳到主要内容
版本:4.1

RabbitMQ 支持哪些协议?

RabbitMQ 直接地和通过使用插件的方式支持多种消息传递协议。此页面描述了支持的协议,并帮助区分它们。

AMQP 0-9-1

RabbitMQ 最初开发用于支持 AMQP 0-9-1。因此,此协议一直是 broker 支持的第一个“核心”协议。我们以多种方式扩展了 AMQP 0-9-1。

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

RabbitMQ 教程适用于 AMQP 0-9-1。

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 协议允许以非常高的吞吐量与进行通信。 RabbitMQ 通过插件原生支持流协议。

RabbitMQ 教程适用于 RabbitMQ Streams 协议。

MQTT

MQTT 是一种二进制协议,强调轻量级的发布/订阅消息传递,目标是受限设备中的客户端。它为发布/订阅定义了完善的消息传递语义,但没有为其他消息传递方式定义。

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

STOMP

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

RabbitMQ 通过插件(在内部通过 AMQP 0-9-1 代理)支持 STOMP(所有当前版本)。

HTTP 和 WebSockets

虽然 HTTP 实际上不是一种消息传递协议,但 RabbitMQ 可以通过以下三种方式通过 HTTP 传输消息

  • Web STOMP 插件支持使用 WebSockets 向浏览器进行 STOMP 消息传递。
  • Web MQTT 插件支持使用 WebSockets 向浏览器进行 MQTT 消息传递。
  • 管理插件支持一个简单的 HTTP API 来发送和接收消息。这主要用于诊断目的,但可以用于低容量的消息传递,而无需可靠的交付
© . All rights reserved.