首页 > 解决方案 > 在 ActiveMQ Artemis 中设置和配置 Apache Camel 以进行 MQTT 处理

问题描述

我是 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-camelmqttactivemq-artemis

解决方案


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

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

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


推荐阅读