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

Rabbitmq 面向消息中间件与消息队列,rabbitmq,message-queue,nservicebus,servicebus,rebus,Rabbitmq,Message Queue,Nservicebus,Servicebus,Rebus,我想知道如何区分什么软件是面向消息的中间件,什么是消息队列 更进一步-服务总线使用队列还是面向消息的中间件?或者服务总线本身就是面向消息的中间件 例如,RabbitMQ只是消息队列,还是还包含面向消息的中间件特性 这个术语似乎很模糊。请给我一些建议。谢谢:)根据维基百科: 是 支持发送和接收的软件或硬件基础设施 分布式系统之间的消息 及 在计算机科学中,邮箱是 用于进程间通信的软件工程组件 (IPC),或用于同一进程内的线程间通信 我将把消息队列描述为较低的抽象,也就是说,它是关于消息如何组织、

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

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

例如,RabbitMQ只是消息队列,还是还包含面向消息的中间件特性


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

根据维基百科:

是 支持发送和接收的软件或硬件基础设施 分布式系统之间的消息

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

我将把消息队列描述为较低的抽象,也就是说,它是关于消息如何组织、存储和传递的概念

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

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

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

至于NServiceBus,它使用MOM(,但您也可以像RabbitMQ或其他人一样启用)作为其传输,所以是的,它使用消息队列概念和MOM本身。根据定义,NServiceBus是MOM本身(比大多数传输MOM级别更高)


所以NServiceBus更像是架构概念,是各种MOM之上的抽象。要进一步阅读,请参阅此处的问题,这有助于理解NServiceBus的概念。

您确定NServiceBus使用MQTT而不是AMQP吗?对不起,默认情况下不是MQTT而是MSMQ(我在回答中做了此修复)。AMQP是一种协议(如HTTP、FTP、RTMP、SAMBA等)。MQTT也是协议,MSMQ是微软的协议和it实现。MSMQ通过MOM定义,通常称为MOM,只需在web上搜索“MSMQ中间件”。