首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我为RabbitMq选择协议时,应该指导什么?

当我为RabbitMq选择协议时,应该指导什么?
EN

Stack Overflow用户
提问于 2017-08-14 11:33:48
回答 2查看 426关注 0票数 1

我试图深入研究java中的消息传递。我正在调查RabbitMq和AMQP协议。首先,我重复了几个来自https://spring.io/guides/gs/messaging-rabbitmq/https://www.rabbitmq.com/的例子

现在我想更详细地了解它。

官方网站特征剖面看起来像广告。它说RabbitMQ支持几种协议:

AMQP 0-9-1,0-9和0-8,以及扩展 踩踏 MQTT AMQP 1.0 HTTP

但我不明白我为什么要选择其中之一。

你能分享你的想法吗?

EN

回答 2

Stack Overflow用户

发布于 2017-08-14 11:53:58

RabbitMQ是在进程、应用程序和服务器之间交换数据的一种方式。正如您所说,您可以从它支持的几个协议中选择一个。

您的选择将取决于要互连的应用程序或系统。例如:

  • MQTT:是一种轻量级协议,具有低占用空间,适合在资源受限、带宽低的设备(如嵌入式系统)之间进行通信。
  • STOMP:是基于文本的,使得它更类似于HTTP,并且在与web服务器的消息传递中非常有用。

如您所见,每个协议都有其优点和缺点,您的选择将取决于哪个协议更适合您想要构建的应用程序。

有关每个协议的更详细说明,请参见此链接

票数 2
EN

Stack Overflow用户

发布于 2017-08-15 07:37:27

该协议只定义客户端和服务器之间的通信,对消息本身没有影响。发布时可以使用一种协议,也可以使用另一种协议。

AMQP (高级消息队列协议):RabbitMQ最初是为了支持由RabbitMQ代理支持的“核心”协议而开发的。AMQP旨在有效地支持各种各样的消息传递应用程序和通信模式。路由是AMQP中的一项功能,即交换决定将消息放在哪个队列上的过程。RabbitMQ中的消息将根据交换类型和密钥从exchange路由到队列。(与MQTT相比,AMQP中有更复杂的路由选项)。现在,RabbitMQ实现了规范的0-9-1版本,并为其他版本提供了遗留支持。AMQP1.0是一个与AMQP0-9-1/ 0-9 / 0-8完全不同的协议.

MQTT (消息队列遥测传输)以其最小的设计使其适合内置系统、移动电话和其他内存和带宽敏感的应用程序。使用AMQP可以完成特定的任务,但是MQTT可能是这种特定类型场景的更合适的协议选择。

超文本传输协议(,超文本传输协议)是一种适用于分布式、协作、超媒体信息系统的应用层协议.HTTP不是消息传递协议。但是,RabbitMQ可以通过HTTP传输消息。

STOMP (简单的或流的面向文本的消息协议)是一种简单的基于文本的协议,用于在应用程序之间传输数据。它比AMQP简单得多,也不那么复杂,它更类似于HTTP。STOMP客户端可以与几乎所有可用的STOMP通信,这提供了许多语言、平台和代理之间的轻松和广泛的消息互操作性。例如,可以使用telnet客户端连接到STOMP。

资料来源:https://www.rabbitmq.com/protocols.htmlhttps://www.cloudamqp.com/docs/protocols.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45673613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档