消息队列和 ESB 之间有什么区别?

What is difference between a Message Queue and ESB?

我刚刚阅读了有关企业服务总线的内容,并试图弄清楚如何实施它。然而,我对它的了解越多,我的结论是它只是一个美化的消息队列。

我在这里读到它:What is an ESB and what is it good for?

我们在我们的架构中经常使用 RabbitMQ,我很难理解的是这两个概念之间有很多相似之处:

我的问题是 ESB 能做什么而 RabbitMQ 不能做什么?

我没有使用过 RabbitMQ,所以无法对它发表评论。我已经使用过 ESB,并且正在使用它。

ESB: 它为您提供了多种订阅 message.Its 的方式,在使用主题和订阅的 Publisher-Subscriber 模型中最有用。您可以在主题中发布您的消息负载(类似于队列)。与队列不同,主题为我们提供了对单个主题进行多个订阅的能力。该订阅可以根据您的业务需求进行划分,您可以在这些主题(也称为通道)上定义某种过滤器表达式,使用指定的过滤器,适当的订阅者将从总线中提取消息。也可以一次由多个订阅者订阅一条消息。如果没有对主题使用过滤,则意味着该主题的所有订阅者将从频道中拉取消息。

这是你提到的异步机制,post忘了吧。 ESB 中有一个重试机制,您可以在其中尝试订阅消息一定次数,我认为它是 10 次(最多),之后它在死队列中发送。

因此,如果您的需求是连接具有松散耦合架构的多个企业系统,那么 ESB 是一个不错的选择。

我希望这对了解 ESB 有所帮助