我一直在试图弄清楚什么是面向消息的中间件,但是一直没能找到任何对我来说很有意义的非企业实例。任何人都可以给我一个关于MOM是什么的清晰和容易理解的解释,以及可能的一些关于它如何在企业外使用的简单例子?什么是面向消息的中间件?
回答
面向消息的中间件是一种基础设施,它使用消息交换,而不是函数调用/共享存储器。这是一个设计原则,因此可以在任何地方使用。它可能在异构/高可用性/高性能系统中最为有用。
面向消息的中间件是用于在计算机和数据网络发送和接收消息的框架系统。中间件消息传递为Broker,应用程序服务器和业务流程自动化提供了基础。
见漂亮的草图,说明它 http://www.onlinemq.com/wiki/index.php/Image:Flow-diagram.jpg
使用MOM消息被发送到客户端收集和存储直到他们采取行动,而客户端继续其它过程。
正如我刚才已经回答有点类似的问题 - 我想回答你,但与一些额外的专业术语,到底要澄清的是在实际的方式是什么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)
- 1. 消息代理与MOM(面向消息的中间件)
- 2. Log4Net是一种面向消息的中间件吗?
- 3. 不同类型的MOM(面向消息的中间件)的
- 4. 关于面向消息的中间件的图/表
- 5. 面向Python消息的中间件(即适用于Python的JMS)
- 6. 面向复杂路由/转发的最佳企业服务总线/消息中间件是什么?
- 7. 面向消息的移动设备开发中间件
- 8. 在面向对象的分析和设计中,消息的作用是什么?
- 9. 什么是OOP中的消息传递?
- 10. Android服务中的消息是什么?
- 11. WebView.requestFocusNodeHref(Message hrefMsg)中的消息是什么?
- 12. 什么是消息边界?
- 13. 什么是消息传递?
- 14. 什么是WndProc消息24
- 15. 什么是#袋,#消息?
- 16. 向卡夫卡发布消息的最佳方式是什么?
- 17. 终止消息的目的是什么
- 18. 什么是面向方面的编程?
- 19. NodeJs/ExpressJs - 为什么要使用闪存/消息中间件
- 20. 什么是WebSphere MQ消息的格式
- 21. 消息系统的含义是什么?
- 22. 什么是了解QEMU的好消息?
- 23. 提交消息的用途是什么?
- 24. Maildir消息文件名中的标志是什么意思?
- 25. 什么是缓存的正确信息?什么是页面加载时间?
- 26. RabbitMQ消息中间件
- 27. 什么是中间件?
- 28. iOS5什么“由于太多未处理的消息而丢弃事件0的消息”是什么意思?
- 29. visual studio中的错误消息之后的消息是什么意思?
- 30. 什么是Java中的面向组件的编程?
哪来的节目内容? – 2010-10-20 07:12:49
据我所知,SO有很多非编程问题。 X最好的书是什么? Y的用例是什么?例如,你发布的这个问题没有明确的编程内容(http://stackoverflow.com/questions/165985/resources-to-create-applications-with-a-great-user-experience)。我没有看到这些问题和我自己的区别。我无法弄清楚MOM是什么以及它用于什么。这显然是程序员感兴趣的技术,所以我认为它非常适合SO的主题。 – jammur 2010-10-20 08:23:39
虽然SO在这些问题上更加宽松,但随着网站的堆栈交换系列不断增长,它在脱离主题执行方面变得更加僵化。现在,许多盛大的问题将被关闭为脱离主题。请记住,programmers.stackexchange.com可用于非编程,但可用于相关讨论。至于这个问题,在我的(可能是错误的,但可能是)判断中,它是可以回答的和关于主题的。 – Will 2010-10-20 11:46:23