jms - 对 Apache Camel 和 ActiveMQ 感到困惑

标签 jms apache-camel activemq

我对 Apache Camel 和 ActiveMQ 非常陌生,发现掌握它们的概念非常困难且令人困惑。事实上,我对 JMS 的整个概念都很陌生。我真的不明白 Apache Camel 与 ActiveMQ 有什么不同,因为根据我的理解,两者都具有将消息从一个系统路由到另一个系统的相同目的,反之亦然。有没有人有一个现实生活中的例子,而不仅仅是书本知识,可以澄清一些东西?

最佳答案

JMS、ACTIVEMQ 和 Apache CAMEL 在世界分布式应用程序中具有重要意义。

Apache Camel 和 ActiveMQ 参与将消息从一个系统路由到另一个系统的过程,但它们在此过程中扮演不同的角色。他们解决两个不同的问题

  1. 基础设施:如何连接这两个系统?如何将消息传输到目的地?
  2. 路由:您如何设计消息路由?

ActiveMQ 处理基础设施部分。它提供连接分布式系统的队列、主题。一旦消息到达队列或主题,ActiveMQ 就负责确保消息到达为特定队列或主题指定的目的地。

Camel 帮助您设计您的消息应采取什么路线才能到达最终目的地。您可以选择发送消息通过多个系统到达最终的目标系统。如果您想在某些系统上处理消息,它可以帮助您。它可以帮助您处理不同系统如何理解相同的消息(数据格式)。

一个类比可能有助于强化这一点: 您决定在从印度到加拿大的旅程中游览几个世界城市。 您(类似于消息)决定访问迪拜、西类牙、希腊、美国和加拿大。您随身携带一名导游,他可以帮助您预订机票,帮助您用本地语言进行交流(数据格式化)。 该指南知识渊博,可以帮助您购买本地的衣服,参观本地的好地方,吃本地的食物(类似于消息的处理)。 本指南类似于 Apache Camel。

但是,您的导游会乘坐不同航空公司、不同类型的飞机,以便您到达不同的城市。这些不同的航空公司和飞机,它们所属的公司类似于 Apache ActiveMQ。这是你的运输机制。

希望这能激发一些想法。

关于jms - 对 Apache Camel 和 ActiveMQ 感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28874933/

相关文章:

java - JMSListener - 动态选择器

apache-camel - log4j2 如何禁用 "date:"查找 - log4j 抛出异常

java - ActiveMQ 故障转移 : How to detect when an application starts and cannot find a broker

java - 哪些用例使临时 JMS 队列成为比持久队列更好的选择?

java - 无法从jms队列接收消息

java - MessageDrivenBean 中的 Finalize 方法

java - 为什么 setHeader 不在流程功能内工作而是在功能之外工作

java - Camel 组件测试中的"unable to find valid certification path to requested target"

java - 通过 URI 配置 ActiveMQ 的优先级

java - 通过 ActiveMQ 将字节数组作为属性发送