什么是broker、topic、queue

What is a broker, topic, queue

我试图找到有关代理、主题、队列的详细信息;但得不到好的结果。我尝试 Google 这些主题,但找不到太多。 谁能帮忙解释一下这些概念。

的确,找到一个简单的答案有点困难。

我发现 this Red Hat page 有两个解释 JMS 原理的简单图表。由于 TIBCO EMS 也是一种 JMS 实现,因此适用于有关队列和主题的相同理论。

为了更加"TIBCO-oriented"我的回答,请参考EMS用户指南的第3页和第4页(latest version)。

总结:

队列

  • 用于"point-to-point"消息传递模型(这并不意味着整个集成解决方案应该被认为是点对点的,你可以用队列做很好的EAI)。
  • 即使没有消息消费者连接,它们通常也会存储消息。
  • 它们可用于异步通信(例如:生产者和消费者不能同时可用)、负载共享(即:如果有多个消费者,则只有一个会收到消息)和基于整体消息的集成( see this book).

主题

  • 主要用于"publish-subscribe"消息模型。
  • 通常,如果他们不是订阅者,则所有发布的消息都是 "lost"(设计使然)。持久订阅可以弥补这一点,实质上相当于 "pub-sub subscribers queues".

注意:在 EMS 中,队列和主题可以 "chained" 到 "bridges" 以提供更多功能。其他产品也有类似的功能。

经纪人

经纪人通常指的是上述书籍参考中的“Message Broker”模式和专业产品。通常,"broker" 是赋予 BusinessWorks(或类似产品,如 webMethods IS 或 IBM Integration Bus / Websphere Message Broker)的 "intelligent integration manager" 的角色。这些产品通常是任何 ESB/EAI 项目的核心,因为它们将消息传递系统与映射、编程语言(专有或开放式 Java)和特定系统(大型机、ERP 等)的适配器联系在一起