activeMQ多个使用者问题

| 我们有两个配置为集群的activemq实例和四个玻璃鱼实例的集群,它们应在任何给定时间连接到一个activemq。如果activemq01不可用,则所有四个glassfish实例都应在activemq02上进行故障转移。 我已经多次注意到,由于未知原因,(随机)glassfish实例之一将在activemq02上进行故障转移,并且即使activemq01没有关闭,其余三个实例仍将连接到activemq01,并且所有glassfish实例都应该已经关闭在activemq01上监听。 日志没有表明任何可以解释此行为的内容,我所能看到的是,一个glassfish实例是否无法连接到activemq01并无法在activemq02上进行故障转移。 是否有人遇到过相同或相似的问题?任何帮助/建议,我们将不胜感激。 这是我的activemq配置: activemq01: http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd   http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd \“>            文件:$ {activemq.base} /conf/credentials.properties        
<managementContext>
  <managementContext connectorPort=\"1093\" createConnector=\"true\"/>
</managementContext>

<networkConnectors>
  <networkConnector name=\"amq-prod\" uri=\"static://(tcp://127.0.0.1:61616,tcp://192.168.0.167:61616)\" />
</networkConnectors>


<persistenceAdapter>
  <kahaDB directory=\"${activemq.base}/data/kahadb\"/>
</persistenceAdapter>

<plugins>
  <loggingBrokerPlugin logAll=\"false\" logConnectionEvents=\"true\"/>
</plugins>


<systemUsage>
  <systemUsage>
    <memoryUsage>
      <memoryUsage limit=\"2048 mb\"/>
    </memoryUsage>
    <storeUsage>
      <storeUsage limit=\"2 gb\" name=\"prod\"/>
    </storeUsage>
    <tempUsage>
      <tempUsage limit=\"2000 mb\"/>
    </tempUsage>
  </systemUsage>
</systemUsage>

<transportConnectors>
  <transportConnector name=\"openwire\" uri=\"tcp://0.0.0.0:61616\" updateClusterClients=\"true\" />
</transportConnectors>
   # activeMQ02: http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd   http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd \“>            文件:$ {activemq.base} /conf/credentials.properties        
<managementContext>
  <managementContext connectorPort=\"1093\" createConnector=\"true\"/>
</managementContext>

<networkConnectors>
  <networkConnector name=\"amq-prod\" uri=\"static://(tcp://127.0.0.1:61616,tcp://192.168.0.166:61616)\"  />
</networkConnectors>


<persistenceAdapter>
  <kahaDB directory=\"${activemq.base}/data/kahadb\"/>
</persistenceAdapter>
           
<systemUsage>
  <systemUsage>
    <memoryUsage>
      <memoryUsage limit=\"2048 mb\"/>
    </memoryUsage>
    <storeUsage>
      <storeUsage limit=\"2 gb\" name=\"prod\"/>
    </storeUsage>
    <tempUsage>
      <tempUsage limit=\"2000 mb\"/>
    </tempUsage>
  </systemUsage>
</systemUsage>

<transportConnectors>
  <transportConnector name=\"openwire\" uri=\"tcp://0.0.0.0:61616\" updateClusterClients=\"true\" />
</transportConnectors>
   activeMQ的版本-5.4.1     
已邀请:
将您的networkConnector标记定义如下: acticemq01配置:
 <networkConnector
         name=\"amq1-nc\" 
         uri=\"static:(failover:(tcp://192.168.0.167:61616))\" 
         networkTTL=\"2\" 
         duplex=\"true\"
         dynamicOnly=\"true\" 
  />
acticemq02配置:
 <networkConnector
         name=\"amq2-nc\" 
         uri=\"static:(failover:(tcp://192.168.0.166:61616))\" 
         networkTTL=\"2\" 
         duplex=\"true\"
         dynamicOnly=\"true\" 
  />
并在您的使用者中使用JMS提供程序URL,如下所示:
failover:(tcp://192.168.0.166:61616,tcp://192.168.0.167:61616)?randomize=false&timeout=5000
以上故障转移URL将始终连接到acticemq01代理(如果可用)。如果acticemq01发生故障,它将自动故障转移到acticemq02代理。另外,timeout = 5000将确保使用者在5秒钟内抛出错误,以尝试连接到这两个代理中的任何一个。     

要回复问题请先登录注册