我已成功运行 ActiveMQ 5.9.1 , Camel 2.11 和 Tomcat 7.0.50 服务层应用程序,并依赖于ActiveMQ独立开始。 我使用ActiveMQ的原因是在两个相同的负载平衡实例之间拥有共享数据存储区,以便加快处理速度。
这是我想要做的: 能够从 pom.xml 启动ActiveMQ,或者从 context.xml 启动最坏情况。因此,假设2个实例是负载平衡的,它们启动自己的ActiveMQ服务器,但它们指向单个数据存储(目录)以获取队列信息。 请告知我如何才能在生产环境中保持最佳性能。 我还在寻找任何我可以尝试的伪代码,还没有成功。
camelContext.xml的代码片段
<broker id="broker" brokerName="myBroker" useShutdownHook="false" useJmx="true" persistent="true" dataDirectory="activemq-data"
xmlns="http://activemq.apache.org/schema/core">
<transportConnectors>
<transportConnector name="tcp" uri="tcp://localhost:61616"/>
</transportConnectors>
</broker>
<bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://myBroker?create=false&waitForStart=5000" />
</bean>
<bean id="pooledConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory"
init-method="start" destroy-method="stop">
<property name="maxConnections" value="8" />
<property name="connectionFactory" ref="jmsConnectionFactory" />
</bean>
<bean id="activeMQConfig"
class="org.apache.activemq.camel.component.ActiveMQConfiguration">
<property name="connectionFactory" ref="pooledConnectionFactory" />
<property name="concurrentConsumers" value="20" />
</bean>
<bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
<property name="configuration" ref="activeMQConfig" />
<property name="transacted" value="true" />
<property name="cacheLevelName" value="CACHE_CONSUMER" />
</bean>
请帮忙。
答案 0 :(得分:0)
我终于解决了这个问题。如果其他人遇到同样的问题,我将ActivemQ版本降级到5.8.0以解决问题。