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

问题描述

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

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

Client1正在使用MQTT发布一些消息,并且client2已订阅并检索这些消息。现在,我想将Camel与ActiveMQ Artemis一起/与ActiveMQ Artemis一起添加为控制器(路由器),以便我可以控制MQTT数据的转发或编辑它,还可以执行从MQTT到REST的一些过渡。

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

Camel是否已经在ActiveMQ Artemis中,我是否只需在配置中添加一些内容即可将其激活?

如果是,那么我不知道需要在ActiveMQ Artemis中的哪个位置以及哪些配置文件进行编辑,以在其中安装Camel。

在Internet上搜索时,我看到了很多关于Camel配置的Java和XML代码,但这都有些混乱。这只是一堆难题,我不知道该把哪个难题放在哪里。

解决方法

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

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

此外,如果要使用池化连接工厂,则可以使用this,它是基于ActiveMQ 5.x JMS池化连接工厂的独立项目。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...