增加微信订阅号(在右侧),关注后,及时收到最新更新的文章。

RabbitMQ指南(2)-支持的协议

MQ消息队列 智菲尔 2973℃ 0评论

RabbitMQ支持哪些协议呢?

RabbitMQ通过直接支持或插件支持的方式,支持了几种消息协议。

AMQP 0-9-1,0-9,0-8,和扩展协议

RabbitMQ最早开发就是为了支持AMQP,所以该协议是Broker支持的最核心的协议。所有的版本基本上是类似的,但最新的版本描述比较不清晰或相比先前版本没有多大改善。RabbitMQ用不同的方式扩展了AMQP 0-9-1。

AMQP 0-9-1是一个二进制协议,定义了相当强大的消息语法。客户端实现起来是相当容易的,正如它有相当多的语言环境实现一样。

如果你刚好要使用RabbitMQ,建议使用AMQP 0-9-1。

STOMP

STOMP是一个非常简单的基于文本的消息协议。它定义了很少的消息语法,它非常容易实现,并且实现一部分将会更容易(它是仅有的可以手动使用telnet来操作的协议)。

RabbitMQ通过插件机制支持STOMP当前所有版本。

MQTT

MQTT是一个轻量级的 发布/订阅 消息机制的二进制协议,旨在用于低端设备的客户端上。它很好的定义了 发布/订阅消息机制,介不支持其它消息机制。

RabbitMQ通过插件机制支持MQTT 3.1。

AMQP 1.0

不要在意这个名字,AMQP 1.0和AMQP 0-9-1/0-9/0-8在本质上是不同的,几乎什么都不一样。借助于AMQP 1.0非常少的语法要求;因此将现有的Broker添加上AMQP 1.0的协议支持是非常容易的。实质上这个协议比起AMQP 0-9-1,是非常复杂的,并且它有非常少的客户端实现。

RabbitMQ通过插件机制支持AMQP 1.0。

HTTP

HTTP当然不是一个消息协议。RabbitMQ可以通过以下三种方式来传输消息:

  • 管理插件支持一个简单的HTTP API用于发送和接收消息。主要用于测试诊断的目的,但是针对少量的消息来说还是可靠的。
  • Web-STOMP插件使得,在浏览器上可使用基于WebSockets、或者SockJS来控制消息。
  • JSON-RPC插件使浏览器通过JSON-RPC和基于AMQP 0-9-1协议的消息进行通信。注意JSON RPC是一个同步的协议,基于异步传输的AMQP的一些功能将使用polling方式进行模拟。

英文原文:http://www.rabbitmq.com/protocols.html

转载请注明:子暃之路 » RabbitMQ指南(2)-支持的协议

喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址