我想知道如何区分什么软件是面向消息的中间件和什么是消息队列?
更进一步,服务总线是使用队列还是面向消息的中间件?或者服务总线本身就是面向消息的中间件?
例如,RabbitMQ只是消息队列,还是也包含面向消息的中间件特性?
这个术语似乎又模糊又模糊。请指点。谢谢您:)
发布于 2014-08-07 10:47:45
根据维基百科:
面向消息中间件(MOM)是支持在分布式系统之间发送和接收消息的软硬件基础结构。
和
在计算机科学中,消息队列和邮箱是用于进程间通信或同一进程内线程间通信的软件工程组件。
我将消息队列描述为较低的抽象,比如消息如何组织、存储和传递的概念。
对于面向消息的中间件来说,消息队列不是必需的.比如说,您可以让MOM广播任何消息,而不关心网络或任何其他延迟或潜在的故障和消息丢失。在这种情况下,无法保证消息传递和传递顺序。当然,这是非常具体的用例,但是这样的软件(或硬件)可以称为MOM。
因此,RabbitMQ本身就是面向消息的中间件。内部利用FIFO队列进行消息存储。维基百科也有这样的说法:
RabbitMQ 是开源消息代理软件(有时称为面向消息的中间件),它实现高级消息队列协议(AMQP)。这个
至于NServiceBus,它使用MOM (默认情况下,MSMQ,但您也可以启用其他运输支助,如RabbitMQ或其他)作为其传输,所以是的,它使用消息队列概念和MOM本身。根据定义,NServiceBus是MOM本身(比大多数MOM更高的级别)。
因此,NServiceBus更像是架构概念,抽象在各种MOM之上。有关进一步的阅读,请参阅此处的NServiceBus相对于计划RabbitMQ的具体优势问题,这有助于了解NServiceBus的想法。
https://stackoverflow.com/questions/25178711
复制相似问题