【问题标题】:Setup and configure Apache Camel in ActiveMQ Artemis for MQTT handling在 ActiveMQ Artemis 中设置和配置 Apache Camel 以进行 MQTT 处理
【发布时间】:2020-08-13 11:17:32
【问题描述】:

我是 ActiveMQ 和 Apache Camel 的新手,对它们和 Camel 设置有一些疑问。

我正在运行 ActiveMQ Artemis 2.14.0 (docker image),并且 MQTT 代理在端口 1883 上运行。

Client1 正在使用 MQTT 发布一些消息,而 client2 已订阅并检索这些消息。现在我想在 ActiveMQ Artemis 旁边添加 Camel 作为控制器(路由器),这样我就可以控制 MQTT 数据的转发或对其进行编辑,还可以进行一些 MQTT 到 REST 的转换。

我不知道我需要使用 ActiveMQ Artemis 和 Camel 的哪些组件。

Camel 是否已经在 ActiveMQ Artemis 中,我是否需要在配置中添加一些内容来激活它?

如果是,那么我不知道我需要编辑 ActiveMQ Artemis 中的哪些配置文件以在其中设置 Camel。

在 Internet 上搜索时,我看到很多用于 Camel 配置的 Java 和 XML 代码,但都有些混乱。就是一堆拼图,不知道放什么拼图。

【问题讨论】:

    标签: apache-camel mqtt activemq-artemis


    【解决方案1】:

    Camel 不附带 ActiveMQ Artemis。配置 Camel 有两个基本选项。您可以下载它并独立于代理进行配置。或者,您可以将 Camel 路由放入 Web 应用程序,并将其部署到代理的嵌入式 servlet 包含(即 Jetty),如 ActiveMQ Artemis 附带的“camel”示例所示(在examples/features/standard/camel 目录中)。

    请注意,JMS 组件的文档会说如果您使用 ActiveMQ,则应该使用 ActiveMQ 组件。这仅在您使用 ActiveMQ 5.x 而不是 ActiveMQ Artemis 时有效。

    另外,如果您想使用池连接工厂,您可以使用this,这是一个基于 ActiveMQ 5.x JMS 池连接工厂的独立项目。

    【讨论】:

    • 我明白了。谢谢你给我一些指示。如果我使用 ActiveMQ 5.x,我有哪些设置 Camel 的选项?对于我的情况,您推荐哪个版本的 ActiveMQ(5.x 或 Artemis)?
    • 另外,如果我想对了,请告诉我。如果我使用 JMS 组件,首先我会安装 Camel (installation example),然后将 JMS 组件添加到 pom.xml 并在 RouteBuilder Java 类中编辑路由。
    • 我用 ActiveMQ Artemis 部署 Camel 路由的另一个选项更新了我的答案。无论如何,我建议您使用 Artemis 而不是 ActiveMQ 5.x,因为性能和扩展性会更好。
    • FWIW 我不是骆驼专家。我是 ActiveMQ 的开发人员。因此,我无法指导您如何安装 Camel 和使用RouteBuilder
    • @JustinBertram 您提到的连接池工厂被骆驼报告为不符合 JMS 2.0。看到我的这个问题stackoverflow.com/questions/63126305/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多