/home/activemq/conf/activemq.xml
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:amq="http://activemq.apache.org/schema/core"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="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">
<!-- Allows us to use system properties as variables in this configuration file -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>file:${activemq.base}/conf/credentials.properties</value>
</property>
</bean>
<!--
The <broker> element is used to configure the ActiveMQ broker.
-->
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="brokerA" brokerId="A" dataDirectory="${activemq.base}/data" destroyApplicationContextOnStop="true" persistent="true">
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry topic=">" producerFlowControl="false" memoryLimit="128mb" topicPrefetch="1000">
<pendingSubscriberPolicy>
<vmCursor />
</pendingSubscriberPolicy>
</policyEntry>
<policyEntry queue=">" producerFlowControl="false" memoryLimit="128mb" queuePrefetch="1">
</policyEntry>
</policyEntries>
</policyMap>
</destinationPolicy>
<managementContext>
<managementContext createConnector="true"/>
</managementContext>
<networkConnectors>
<networkConnector uri="static:(tcp://brokerB:61616)" duplex="true"/>
</networkConnectors>
<persistenceAdapter>
<jdbcPersistenceAdapter dataSource="#pg-ds" useDatabaseLock="false">
<statements>
<statements messageTableName="amq_msg" lockTableName="amq_lock" durableSubAcksTableName="amq_acks"/>
</statements>
</jdbcPersistenceAdapter>
</persistenceAdapter>
<systemUsage>
<systemUsage sendFailIfNoSpace="true">
<memoryUsage>
<memoryUsage limit="512 mb"/>
</memoryUsage>
<storeUsage>
<storeUsage limit="10 gb"/>
</storeUsage>
<tempUsage>
<tempUsage limit="1 gb"/>
</tempUsage>
</systemUsage>
</systemUsage>
<transportConnectors>
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>
<transportConnector name="stomp+nio" uri="stomp+nio://0.0.0.0:61613?transport.closeAsync=false"/>
</transportConnectors>
</broker>
<bean id="pg-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="org.postgresql.Driver"/>
<property name="url" value="jdbc:postgresql://10.10.10.10:5432/db"/>
<property name="username" value="username"/>
<property name="password" value="password"/>
<property name="maxActive" value="10"/>
<property name="poolPreparedStatements" value="true"/>
</bean>
<import resource="jetty.xml"/>
</beans>
- 將 policyEntry queue 的 queuePrefetch 設為1,表示 Comsumer 一次只處理一個,處理完再拿下一個。
- networkConnector 指定多台語法如下:
<networkConnector uri="static://(tcp://brokerB:61616,tcp://brokerC:61616)" duplex="true"/> - transportConnector 多加 stomp+nio 協定
<transportConnector name="stomp+nio" uri="stomp+nio://0.0.0.0:61613?transport.closeAsync=false"/> - 要啟動管理畫面就把 managementContext > createConnector 設為 true
<managementContext createConnector="true"/> - 其它的幾 gb 幾 mb 都是我亂設定的,不知道這樣設對不對…
至此,算是架起來了吧,不過都有點瞎子摸象,還不是很瞭解…

沒有留言:
張貼留言