问题描述
我是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池化连接工厂的独立项目。