我对消息代理之间的区别有些困惑,例如兔子和面向消息的中间件。除了Wikipedia上的内容外,我找不到太多信息。搜索妈妈时,我会在AMQP上找到哪个国家的信息是妈妈的协议。这是什么意思?那妈妈是什么?我还读过RabbitMQ实现了AMPQ协议。那么为什么这会使RabbitMQ成为Messsage Broker?消息经纪人和妈妈是同一件事吗?
希望有些人能揭开我的困惑。谢谢
概述 -
- a 协议 - 一组规则。
- AMQP -AMQP是一种开放的Internet协议,用于可靠发送和接收消息。
- MOM (面向消息的中间软件) - 是一种方法,是分布式系统的架构,即整个分布式系统的中间层,其中有很多内部通信(组件是在查询数据,然后需要将其发送到其他组件,这将在数据上进行一些处理),因此组件必须在其中共享信息/数据。
- 消息经纪 - 是处理消息(发送和接收)的任何系统(在MOM中),或更精确地将消息路由到特定的消费者/收件人。信息经纪通常建立在妈妈身上。妈妈在应用程序之间提供基本沟通,以及诸如消息持久性和保证交付之类的东西。"消息经纪人是面向消息的中间件的基础。"
-
RABBITMQ - 消息代理;妈妈实施;AMQP的开源实现;根据维基百科:
RABBITMQ是一种开源消息代理软件(有时 称为消息的中间件),实现高级 消息排队协议(AMQP)。
您问:
搜索妈妈时,我会在amqp上找到妈妈的协议上的信息。这是什么意思?
MOM是关于(分布式)系统组件之间的消息中间件(中间层),而AMQP是可靠发送和接收消息的协议(规则集)。因此,妈妈实施(即兔子)可以使用amqp。
那是什么妈妈?
面向消息的中间软件 - 是一种方法,是分布式系统的架构,即整个分布式系统的中间层,其中有很多内部通信(组件是在查询数据,然后需要将其发送给其他组件将对数据进行一些处理),因此组件必须在其中共享信息/数据。简而言之,这是设计系统的一种方法,例如:根据我们需要开发分布式系统(以及内部通信)的总体要求。MOM体系结构/决策的最大优势是将组件解耦,即,如果我们要更改数据查询组件,它将不会对数据处理组件产生影响,因为它们通过MOM(例如Rabbitmq cluster)进行通信 - 数据处理组件正在以形式消息中获取数据,然后解析并处理它们。
妈妈最后只是一个设计决定,我们使用中间件来粘合系统(分布式)组件,以消息的形式(即JSON)来处理它们之间的通信中的中间件。要实现面向消息的中间软件,我们需要更多 - 一组特定规则,即如何发布,消耗消息,确认将如何工作,消息的寿命直到消耗,消息的持久性等等。AMQP基本上是这些规则集,即用于实现MOM的标准/协议,即使用AMQP的消息传递系统,意味着它限于所述规则。来自Wikipedia:
AMQP要求消息传递提供商和客户的行为 来自不同供应商的实施是可行的, 以与SMTP,HTTP,FTP等相同的方式创建了可互操作的方式 系统。
我还读过,RabbitMQ实现了AMPQ协议。那么为什么会使RabbitMQ成为消息Broker?
是的,RabbitMQ是一个消息经纪(发布者 -> Exchange->队列 ->消费者)。这是一个开源AMQP实现,即局限于AMQP(AMQP规则)的消息系统/经纪人 - 可以将RabbitMQ用作中间件,因此可以使用MOM。
amqp-只是一组规则,即消息将发布,保存(以排队),消费,交付确认等。
是消息经纪和妈妈同样的事情吗?
简单的话,是的。如果我们需要使用分布式系统的MOM Design,我们可以简单地将RabbitMQ(消息经纪人; AMQP实施)用作中间件。
"妈妈"广泛地表示可以从一个用户空间应用程序传递"消息"的任何技术。与流相比,通常将消息理解为一个离散的信息。
MOM产品曾经很大且复杂:Corba,JMS,Tibco,WebSpheremq等,并且不仅要做更多的事情。
经纪人是一组特定的路由和排队模式,我们通常在MOM中使用"经纪人"一词(与HTTP,电子邮件,XMPP相比,XMPP等)是指路由,这是指,一条消息将发送给一个同行,对于众多同龄人之一,对所有同行等等。排队意味着将消息保存在内存或磁盘中,直到可以传递它们(在某些情况下,已确认)。
AMQP用于特定这些经纪人模式,因此应用程序可以依赖于任何与AMQP兼容的经纪人的一致行为(因此,RabbitMQ和OpenAMQ看起来与客户端应用相同,例如两个HTTP或两个XMPP服务器看起来相同)。AMQP/1.0仅指定节点之间的连接,因此您无法保证行为。这使得公司更容易实施AMQP/1.0,但不能提供互操作性。
Zeromq是以消息为导向的中间件,其定义(例如AMQP/1.0)是零件之间的连接,而不是中央代理的行为。但是,使用0MQ编写妈妈经纪人相对容易,我们已经完成了其中的一些(例如Majordomo)。
消息经纪人是一个(相当一个流行)妈妈。另一种妈妈将是无经纪人的妈妈,例如Zeromq。借助基于经纪人的妈妈,所有消息都转到一个中心地点:经纪人,并从那里分发。经纪人少的妈妈通常允许同行递送消息传递(但也不排除中央服务器的选项)。
AMQP是基于经纪人的MOM协议定义(至少在1.0之前所有版本,它流入了更普遍的MOM),并且有几个不同的消息经纪人实施该协议,RabbitMQ只是其中之一。
<</p>