跳至主内容
版本:4.2

RabbitMQ 支持哪些协议?

RabbitMQ 直接和通过插件支持多种消息协议。本页将介绍支持的协议并帮助您区分它们。

AMQP 0-9-1

RabbitMQ 最初是为了支持 AMQP 0-9-1 而开发的。因此,该协议一直是消息代理支持的第一个“核心”协议。我们以多种方式扩展了 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 通过插件原生支持 Streams 协议。

RabbitMQ 教程适用于 RabbitMQ Streams 协议

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.