use*_*433 26 message-queue mom amqp rabbitmq messagebroker
关于消息代理(例如RabbitMQ和面向消息的中间件)之间的区别,我有点困惑.除了维基百科上的内容之外,我找不到太多信息.在搜索MOM时,我在AMQP上找到有关MOM协议的信息.这是什么意思?那妈妈是什么?我也读过RabbitMQ实现了AMPQ协议..为什么这会让RabbitMQ成为一个消息代理?消息代理和MOM是一回事吗?
希望有些人可以解开我的困惑.谢谢
Nab*_*med 20
概述 -
RabbitMQ是一种开源消息代理软件(有时称为面向消息的中间件),它实现了高级消息队列协议(AMQP).
正如你问的那样:
在搜索MOM时,我在AMQP上找到有关MOM协议的信息.这是什么意思?
MOM是关于在(分布式)系统组件之间具有消息传递中间件(中间层),并且AMQP是用于可靠地发送和接收消息的协议(规则集).因此,MOM实现(即Rabbitmq)可能使用AMQP.
那妈妈是什么?
面向消息的中间件 - 是一种方法,一种分布式系统的体系结构,即整个分布式系统的中间层,其中有很多内部通信(一个组件正在查询数据,然后需要将其发送到另一个组件,将对数据进行一些处理)因此组件必须在它们之间共享信息/数据.简而言之,这是设计系统的一种方式,例如:根据我们开发分布式系统所需的总体要求,以及一些内部通信.MOM架构/决策的最大优势是组件的解耦,即如果我们要更改数据查询组件,它将对数据处理组件没有影响,因为它们通过MOM进行通信(例如Rabbitmq Cluster) - 数据处理组件以表单消息的形式获取数据,然后解析并处理它们.
最后的MOM只是一个设计决策,我们使用中间件来粘合我们的系统(分布式)组件,一个用于处理它们之间通信的中间件,以消息的形式(即JSON).要实现面向消息的中间件,我们需要更多 - 一组特定的规则,即消息的发布,消费方式,确认的工作方式,消息的生命周期,消费的持续性,等等AMQP基本上是这些规则集,即用于实现MOM的标准/协议,即使用AMQP的消息传递系统,意味着它仅限于所述规则.来自维基百科:
AMQP要求消息传递提供者和客户端的行为达到不同供应商的实现可互操作的程度,与SMTP,HTTP,FTP等创建可互操作系统的方式相同.
我也读过RabbitMQ实现AMPQ协议..为什么这会使RabbitMQ成为消息代理?
是的,Rabbitmq是一个消息代理(发布者 - >交换 - >队列 - >消费者).它是一个开源的AMQP实现,即限制于AMQP(AMQP规则)的消息系统/代理 - 可以使用Rabbitmq作为中间件,因此是MOM.
AMQP - 只是一组规则,即.how将发布,保存(排队),消费,交付确认等消息.
消息代理和MOM是一回事吗?
简单来说,是的.如果我们需要为我们的分布式系统使用MOM设计,我们可以简单地使用Rabbitmq(消息代理; AMQP实现)作为中间件.
Pie*_*ens 12
"MOM"广泛地指任何可以将"消息"从一个用户空间应用程序传递到另一个用户空间应用程序的技术.与流相比,消息通常被理解为离散的信息.
MOM产品过去非常庞大和复杂:CORBA,JMS,TIBCO,WebsphereMQ等,并且尝试做的不仅仅是简单地传递消息.
代理是一组特定的路由和排队模式,我们通常在MOM中使用术语"代理"(与HTTP,电子邮件,XMPP等相比).路由方式,一条消息发送到一个对等方,一条排队意味着消息保存在内存或磁盘中,直到它们可以被传递(并且在某些情况下,被确认).
AMQP用于特定那些代理模式,因此应用程序可以依赖于任何AMQP兼容代理的一致行为(因此RabbitMQ和OpenAMQ看起来与客户端应用程序大致相同,就像两个HTTP或两个XMPP服务器看起来一样).AMQP/1.0仅指定节点之间的连接,因此您无法保证行为.这使得AMQP/1.0更容易实现公司,但却无法提供互操作性.
ZeroMQ是面向消息的中间件,它像AMQP/1.0一样定义了各个部分之间的连接,而不是中央代理的行为.然而,使用0MQ编写MOM代理相对容易,我们已经完成了其中一些(如Majordomo).
消息代理是一种(非常受欢迎的)MOM.另一种MOM将是无代理的MOM,如ZeroMQ.使用基于代理的MOM,所有消息都会转到一个中心位置:代理,并从那里分发.Broker less MOM通常允许对等消息传递(但也不排除中央服务器的选项).
AMQP是基于代理的MOM协议定义(至少1.0之前的所有版本,它都会进入更一般的MOM),并且有几个不同的Message代理实现该协议,RabbitMQ只是其中之一.
| 归档时间: |
|
| 查看次数: |
10501 次 |
| 最近记录: |