在 ActiveMQ Artemis 中设置和配置 Apache Camel 以进行 MQTT 处理

Setup and configure Apache Camel in ActiveMQ Artemis for MQTT handling

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

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

客户端 1 正在使用 MQTT 发布一些消息,客户端 2 已订阅并检索这些消息。现在我想添加 Camel alongside/with ActiveMQ Artemis 作为控制器(路由器),这样我就可以控制 MQTT 数据的转发或编辑它,还可以进行一些 MQTT 到 REST 的转换。

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

Camel 已经在 ActiveMQ Artemis 中了吗?我是否需要在配置中添加一些东西来激活它?

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

在互联网上搜索时,我看到了很多 Java 和 XML Camel 配置的代码,但都有点乱。就是一堆拼图,想不出什么拼图放哪了

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

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

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