我对消息代理(例如, RabbitMQ和面向消息的中间件。除了维基百科上的内容外,我无法找到许多信息。当搜索妈妈时,我发现AMQP的信息是哪种状态是MOM的协议。这是什么意思?什么是MOM呢?我也读过RabbitMQ实现AMPQ协议..那么,为什么RabbitMQ会成为一个消息传递者?消息中介和MOM是同一件事吗?消息代理与MOM(面向消息的中间件)
希望有人能解开我的困惑。谢谢
我对消息代理(例如, RabbitMQ和面向消息的中间件。除了维基百科上的内容外,我无法找到许多信息。当搜索妈妈时,我发现AMQP的信息是哪种状态是MOM的协议。这是什么意思?什么是MOM呢?我也读过RabbitMQ实现AMPQ协议..那么,为什么RabbitMQ会成为一个消息传递者?消息中介和MOM是同一件事吗?消息代理与MOM(面向消息的中间件)
希望有人能解开我的困惑。谢谢
消息代理是一种(非常流行)类型的MOM。另一种MOM将是无代理的MOM,就像ZeroMQ一样。通过基于经纪人的MOM,所有消息都会发送到一个中心位置:经纪商,并从那里分发。代理少MOM通常允许点对点消息传递(但不排除中央服务器的选项)。
AMQP是基于代理的MOM协议定义(至少1.0之前的所有版本都是漂移到更通用的MOM中),并且有几种不同的Message Brokers实现该协议,RabbitMQ就是其中之一。
“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)。
概述 -
RabbitMQ的是一个开源消息代理软件(有时称为 面向消息的中间件)实现高级 消息队列协议(AMQP)。
当你问:
当搜索妈妈,我找到AMQP信息该条规定是MOM协议..这是什么意思?
MOM是关于在(分布式)系统组件之间建立消息中间件(中间层),而AMQP是用于可靠地发送和接收消息的协议(规则集)。所以,一个MOM实现(即Rabbitmq)可以使用AMQP。
什么是MOM呢?
面向消息的中间件 - 是一种方法,分布式系统的体系结构,即整个分布式系统的中间层,其中有很多内部通信(一个组件正在查询数据,然后需要将它发送给另一个组件,它将对数据进行一些处理),所以组件必须在它们之间共享信息/数据。 简而言之,它是一种设计系统的方法,例如:根据我们开发分布式系统所需的总体要求,以及一些内部通信。 MOM体系结构/决策的最大优势是组件的解耦,即如果我们要更改数据查询组件,它将不会影响数据处理组件,因为它们通过MOM(例如Rabbitmq Cluster)进行通信 - 数据处理组件正在获取表单消息中的数据,然后解析并处理它们。
MOM最终只是一个设计决定,我们使用中间件粘贴我们的系统(分布式)组件,这是一个处理它们之间通信的中间件,以消息的形式(即JSON)。为了实现一个面向消息的中间件,我们需要更多的特定规则,例如消息如何被发布,消费,确认如何工作,消息的生命周期直到它被消费,消息的持久性等AMQP基本上就是这些规则集,即用于实现MOM的标准/协议,即使用AMQP的消息传递系统,意味着它按照规定的规则进行限制。维基百科:
AMQP任务的消息提供者,客户端向 程度来自不同供应商的实现是可互操作的行为,在 相同的方式SMTP,HTTP,FTP等已经创建间可操作的 系统。
我也读过RabbitMQ实现AMPQ协议..那么为什么会让RabbitMQ成为消息中介?
是的,Rabbitmq是一个消息代理(发布者 - >交换 - >队列 - >消费者)。它是一个开放源代码的AMQP实现,即限定为AMQP(AMQP规则)的消息传递系统/代理 - 可以使用Rabbitmq作为中间件,因此可以使用MOM。
AMQP - 只是一组规则即。如何信息将被公布,保持(在队列),食用,交货确认等
是一个消息代理和MOM是一回事吗?
简而言之,是的。如果我们需要在分布式系统中使用MOM设计,我们可以简单地使用Rabbitmq(消息代理; AMQP实现)作为中间件。