从 Tomcat 应用程序启动 ActiveMQ,但在实例之间使用共享数据源

Starting ActiveMQ from Tomcat application ,but using a shared datasource among instances

我有一个成功的 运行 ActiveMQ 5.9.1 , Camel 2.11Tomcat 7.0.50 依赖ActiveMQ的服务层应用独立启动。 我使用 ActiveMQ 的原因是在 2 个相同的负载平衡实例之间有一个共享数据存储以加快处理速度。

这是我想要做的: 能够从 pom.xml 或最坏情况下从 context.xml 启动 ActiveMQ。因此,假设 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&amp;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>

请帮忙。

我终于解决了这个问题。以防其他人遇到同样的问题,我将 ActivemQ 版本降级到 5.8.0 来解决这个问题。