Mule-broker客户端ID配置

Mule-broker客户端ID配置,mule,Mule,我正在使用activeMQ连接器 <jms:activemq-connector name="Active_MQ_1" brokerURL="${amq.broker.url.1}" eagerConsumer="true" numberOfConsumers="3" dynamicNotification="true" validateConnections="true" clientId="mule-server-01" doc:name="Active MQ"> &l

我正在使用activeMQ连接器

 <jms:activemq-connector name="Active_MQ_1"  brokerURL="${amq.broker.url.1}"  eagerConsumer="true" numberOfConsumers="3" dynamicNotification="true" validateConnections="true" clientId="mule-server-01"  doc:name="Active MQ">
 <reconnect count="5" frequency="3000" blocking="false"/>
 </jms:activemq-connector>

现在,如果您看到上面的“clientId”属性,我已经将其硬编码。我们正在2台服务器上部署应用程序,在进行生产部署之前,我必须手动将其更改为相应机器的名称

有没有一种方法可以让我使用一些SYS_ENV或一些宏,比如$HOSTNAME,一旦部署它就会自动被机器名替换

仅供参考-此客户端ID非常有用,并且可以查看ActiveMQ队列上的使用者


感谢您使用与
brokerURL
属性相同的属性解析器机制,即Spring的属性解析器

它允许您执行以下操作:

  • 为该值提供系统属性,以便可以从命令行传递该值
  • 使用可选配置文件覆盖默认值

这为您提供了足够的选项以适应您的生产环境实践。

您是否在mule standalone中运行应用程序?您好。是的,我独自一人在赶骡子。但我有两台服务器,在那里我通过ActiveMQ Message BrokerTanks部署了相同的应用程序,以实现弹性和负载平衡。所以我可以定义一个属性,它实际上是一个系统变量?因此,我只想在部署时生效,而不是在构建阶段生效,以便它能够获取机器名。您知道有没有任何系统变量或宏可以用这种方式使用?类似于$HostName等。再次感谢没有包含主机名的标准Java系统属性(请参阅此处的列表:)。您必须将系统属性添加到用于Mule的任何启动命令中,并使用与shell环境相关的任何命令获取值。