什么是面向消息的中间件?

时间:2010-10-20 07:10:07

标签: messaging rabbitmq mom

我一直在努力弄清楚究竟什么是面向消息的中间件,但是却找不到任何对我有意义的非企业真实世界的例子。谁能给我一个清晰易懂的解释,说明MOM是什么,可能还有一些简单的例子说明它是如何在企业外部使用的?

5 个答案:

答案 0 :(得分:4)

面向消息的中间件是一种使用消息交换而不是函数调用/共享内存的基础结构。这是一个设计原则,因此可以在任何地方使用。它可能在异构/高可用性/高性能系统中最有用。

答案 1 :(得分:2)

由于我刚刚回答了一个类似的问题 - 我想回答你的问题,但是几乎没有额外的术语,最后要以实际的方式澄清MOM是什么。这里有一些简单的英文定义很少的组件(因为你越多地挖掘MOM,这些术语最终会一次又一次地出现 - 并且问题被标记为rabbitmq):

  • MOM - 是一种方法,一种分布式系统的体系结构,即整个分布式系统的中间层,其中有很多内部通信(一个组件正在查询数据,然后需要将其发送到其他组件,这将对数据进行一些处理)因此组件必须在它们之间共享信息/数据。
  • 消息代理 - 是具有句柄消息的任何系统(在MOM中),或者更准确地将消息路由到特定消费者/接收者。 Message Broker通常构建在MOM上。 MOM提供应用程序之间的基本通信,以及消息持久性和保证传递等功能。 "消息代理是面向消息的中间件的构建块。"
  • Rabbitmq - 消息经纪人; MOM实施; AMQP的开源实现;根据维基百科:
      

    RabbitMQ是一个开源的消息代理软件(有时称为   实现高级消息的面向消息的中间件   排队协议(AMQP)。

我在这里提到了Rabbitmq,以进一步澄清MOM,以及它在我们周围的使用方式。

面向消息的中间件 - 是一种方法,是分布式系统的体系结构,即整个分布式系统的中间层,其中有很多内部通信,因此组件必须共享例如,它们之间的信息/数据 - 一个组件正在查询数据,然后需要将其发送到另一个组件,该组件将对数据进行一些处理。简而言之,它是设计系统的一种方式,是的,取决于总体要求,即我们将开发具有一些内部通信的分布式系统。 MOM架构/决策的最大优点是组件的解耦,即如果我们要更改数据查询组件,它将对数据处理组件没有影响,因为它们通过MOM进行通信(例如Rabbitmq Cluster) - 数据处理组件以表单消息的形式获取数据。

最后的MOM只是一个设计决策,我们使用中间件来粘合我们的系统(分布式)组件,一个用于处理它们之间通信的中间件,以消息的形式(即JSON)。

一个非常相关的SO问答 - Message broker vs. MOM (Message-Oriented Middleware)

答案 2 :(得分:1)

面向消息的中间件是一种用于在计算机和数据网络上发送和接收消息的框架系统。中间件消息传递为Broker,应用程序服务器和业务流程自动化提供了基础。

看到解释它的漂亮草图 http://www.onlinemq.com/wiki/index.php/Image:Flow-diagram.jpg

答案 3 :(得分:0)

发送到客户端的MOM消息被收集并存储,直到它们被采取行动,而客户端继续其他过程。

答案 4 :(得分:0)

简而言之

面向消息的中间件(MOM): 面向消息的中间件(MOM)的目的是使不兼容或相反的应用程序/系统/平台(端点)能够以共享格式进行通信。

用于消息传递的主要组件

系统上的应用程序如何与中间件软件对话?

消息队列接口(MQI): 这是一种具有不同功能(调用)的API,使业务应用程序能够与队列管理器(QM)通信。

系统如何在它们之间发送消息?

消息队列(MQ): 通过将消息(数据)发送/接收到队列而不是直接发送/接收应用程序/系统来完成通信。

注意:在发送/接收消息之前/之后,有多种类型的队列服务于不同的操作。

经纪人: 代理在应用程序/系统之间翻译这些消息。

队列管理器(QM): 这样可以管理队列并与其他系统上的其他队列管理器进行通信,以便将来自系统A上队列(A)的消息发送并放入系统B上的队列(B)。

消息频道: 队列管理器通过消息通道与其他队列管理器进行通信。

查看IBM MOM版本中的技术说明: https://www.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.pro.doc/q002620_.htm

查看此频道-它对此主题有简明扼要的解释。

https://www.youtube.com/watch?v=5-0sv-sRmGw&list=PLqnWYrfCqvm5ZdT4je7vjdyLf9_dPK6Kc&index=33