Message Queue和ESB有什么区别?

时间:2018-02-24 00:58:14

标签: rabbitmq esb

我刚刚阅读有关企业服务总线的信息,并试图弄清楚如何实现它。但是,我读的越多,我的结论就是它只是一个美化的消息队列。

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

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

  • 两者基本上都是发帖忘记
  • 您可以在两个队列中发布任何格式的消息

我的问题是,ESB的作用是什么,RabbitMQ无法做到?

1 个答案:

答案 0 :(得分:3)

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

ESB 它为您提供了多种订阅邮件的方式。它主要用于使用主题和订阅的Publisher-Subscriber模型。您可以在主题中发布消息有效内容(类似于队列)。与队列不同,主题使我们能够为单个主题提供多个订阅。此订阅可以根据您的业务需求进行划分,您可以在这些主题(也称为通道)上定义某种过滤表达式,并且使用指定的过滤器,正确的订阅者将从总线中提取消息。一次也可以由多个订户订阅一条消息。如果没有对主题使用过滤,则表示该主题的所有订阅者都将从频道中提取消息。

这是你提到的,发布和忘记的异步机制。在ESB中有一个重试机制,您可以尝试订阅该消息多次,我认为它是10次(最大值)之后,它在死队列中发送。

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

我希望这有助于了解ESB