我对此有点陌生,所以我可能错过了显而易见的事情。
我有一个带 jboss 保险丝的 openshift 齿轮。我已经启动了一个带有 mqtt 连接器的 ActiveMQ 代理,并创建了一个骆驼路线(使用 OSGi 蓝图),从同一个 openshift 设备上的 ActiveMQ mqtt 连接器消费。当我使用 ip-address:port 到 mqtt 连接器时,一切正常,但这不是我想要做的。我想要一些其他解决方案(解析器),它不需要我在 mqtt 端点中指出一个特定的 IP 地址,这样我就可以在骆驼路由中移动而无需重新配置它。
ActiveMQ 连接器配置:
<transportConnectors>
<transportConnector name="openwire" publishedAddressPolicy="#addressPolicy" uri="tcp://${OPENSHIFT_FUSE_IP}:${OPENSHIFT_FUSE_AMQ_PORT}"/>
<transportConnector name="mqtt" publishedAddressPolicy="#addressPolicy" uri="mqtt://${OPENSHIFT_FUSE_IP}:1883"/>
</transportConnectors>
骆驼路线工作时:
<camelContext trace="false" id="blueprintContext" xmlns="http://camel.apache.org/schema/blueprint">
<route id="mqttToLog">
<from uri="mqtt:iot?host=tcp://127.4.22.139:1883&subscribeTopicName=mytesttopic&userName=admin&password=xxxxxxx" id="iot_endpoint">
<description>The MQTT endpoint for consuming data sent from the devices.</description>
</from>
<log message="The message contains ${body}" loggingLevel="INFO" id="iot_log">
<description>Logs all the incoming MQTT messages. This is just for verification purpouses.</description>
</log>
<to uri="mock:result" id="iot_mock">
<description>Final sink for the MQTT message flow. Kept for verification.</description>
</to>
</route>
</camelContext>
我的骆驼路线配置文件将功能骆驼作为父级,并具有骆驼和骆驼-mqtt。
那么我如何摆脱实际上必须在端点中指定主机,例如使用 mq 组或其他一些注册表(结构)或类似的?
谢谢,
托马斯