面向消息的中间件与消息队列



我想知道如何区分什么软件是面向消息的中间件,什么是消息队列?

更进一步——服务总线使用队列还是面向消息的中间件?或者服务总线本身就是面向消息的中间件?

例如RabbitMQ只是消息队列还是它也包含面向消息的中间件功能?

这个术语似乎很模糊。请建议。谢谢:)

根据wikipedia:

面向消息的中间件(妈妈)支持发送和接收的软件或硬件基础设施分布式系统之间的消息。

在计算机科学中,message队列和邮箱是用于进程间通信的软件工程组件(IPC),或用于同一进程内的线程间通信。

我将消息队列描述为较低的抽象,就像消息如何组织,存储和传递的概念。

对于面向消息的中间件,消息队列不是必须的。例如,您可以让MOM广播任何消息,而不关心网络或任何其他延迟或潜在故障和消息丢失。在这种情况下,不能保证消息的传递和传递顺序。当然,这是非常具体的用例,但是这样的软件(或硬件)可以称为MOM。

所以RabbitMQ本身就是面向消息的中间件。在内部,它利用FIFO队列进行消息存储。维基百科也这么说:

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

对于NServiceBus,它使用MOM(默认为MSMQ,但你也可以启用其他传输支持,如RabbitMQ或其他)作为它的传输,所以是的,它利用了消息队列概念和MOM本身。根据定义,NServiceBus是MOM本身(比大多数传输MOM级别更高)。

NServiceBus更像是架构概念,在各种MOM之上的抽象。要进一步阅读,请参阅NServiceBus优于plan的具体优势,这有助于了解NServiceBus的想法。

相关内容

  • 没有找到相关文章

最新更新