1. 程式人生 > >activemq配置說明

activemq配置說明

<!--

Licensed to the Apache Software Foundation (ASF) under one or more

contributor license agreements. See the NOTICE file distributed with

this work for additional information regarding copyright ownership.

The ASF licenses this file to You under the Apache License, Version 2.0

(the "License"); you may not use this file except in compliance with

the License. You may obtain a copy of the License at

 

http://www.apache.org/licenses/LICENSE-2.0

 

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an "AS IS" BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

-->

<!-- START SNIPPET: example -->

<beans

xmlns="http://www.springframework.org/schema/beans"

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.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.conf}/credentials.properties</value>

</property>

</bean>

 

<!-- Allows accessing the server log -->

<bean id="logQuery" class="io.fabric8.insight.log.log4j.Log4jLogQuery"

lazy-init="false" scope="singleton"

init-method="start" destroy-method="stop">

</bean>

 

<!--

The <broker> element is used to configure the ActiveMQ broker.

-->

    <!--開啟自動清除策略

schedulePeriodForDestinationPurge:10000  每十秒檢查一次,預設為0,此功能關閉

gcInactiveDestinations: true  刪除掉不活動佇列,預設為false

nactiveTimoutBeforeGC:30000 不活動30秒後刪除,預設為60秒

-->

<broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}" usmJmx="true" schedulePeriodForDestinationPurge="10000">

<destinationPolicy>

<policyMap>

<policyEntries>

      

<policyEntry topic=">" gcInactiveDestinations="true" inactiveTimoutBeforeGC="30000">

<!-- The constantPendingMessageLimitStrategy is used to prevent

slow topic consumers to block producers and affect other consumers

by limiting the number of messages that are retained

For more information, see:

 

http://activemq.apache.org/slow-consumer-handling.html

 

-->

<pendingMessageLimitStrategy>

<constantPendingMessageLimitStrategy limit="1000"/>

</pendingMessageLimitStrategy>

</policyEntry>

</policyEntries>

</policyMap>

</destinationPolicy>


 

<!--

The managementContext is used to configure how ActiveMQ is exposed in

JMX. By default, ActiveMQ uses the MBean server that is started by

the JVM. For more information, see:

 

http://activemq.apache.org/jmx.html

-->

<managementContext>

   <!--開啟遠端記憶體監控,使用jconsole進行遠端連結-->

<managementContext createConnector="true" connectorPort="11099"/>

</managementContext>

 

<!--

Configure message persistence for the broker. The default persistence

mechanism is the KahaDB store (identified by the kahaDB tag).

For more information, see:

 

http://activemq.apache.org/persistence.html

-->

<persistenceAdapter>

<!--設定持久檔案,每個檔案設定大小為128m-->

<kahaDB directory="${activemq.data}/kahadb"/ journalMaxFileLength="128mb" >

</persistenceAdapter>


 

<!--

The systemUsage controls the maximum amount of space the broker will

use before disabling caching and/or slowing down producers. For more information, see:

http://activemq.apache.org/producer-flow-control.html

-->

<systemUsage>

<systemUsage>

<memoryUsage>

<memoryUsage percentOfJvmHeap="70" />

</memoryUsage>

<storeUsage>

<storeUsage limit="100 gb"/>

</storeUsage>

<tempUsage>

<tempUsage limit="50 gb"/>

</tempUsage>

</systemUsage>

</systemUsage>

 

<!--

The transport connectors expose ActiveMQ over a given protocol to

clients and other brokers. For more information, see:

 

http://activemq.apache.org/configuring-transports.html

-->

<transportConnectors>

<!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB -->

<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>

<transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>

<transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>

<transportConnector name="mqtt" uri="mqtt+nio://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>

<transportConnector name="ws" uri="ws://0.0.0.0:8083?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>

<transportConnector name="wss" uri="wss://0.0.0.0:8084?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>

</transportConnectors>

<sslContext>

<sslContext keyStore="file:${activemq.conf}/***.jks"

keyStorePassword="***"

/>

</sslContext>

<!--

          <sslContext>

<sslContext keyStore="file:${activemq.conf}/broker.ks" keyStorePassword="password" trustStore="file:${activemq.conf}/broker.ts" trustStorePassword="password"/>

</sslContext>

-->

<!-- destroy the spring context on shutdown to stop jetty -->

<shutdownHooks>

<bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.hooks.SpringContextHook" />

</shutdownHooks>

<plugins>

        <!---->

        <bean xmlns="http://www.springframework.org/schema/beans" id="msgPreProcessPlugin" class="com.rkhd.mq.plugins.MsgPreProcessPlugin"></bean>

        <simpleAuthenticationPlugin>

                <users>

                        <authenticationUser username="admin" password="ingage" groups="admins,publishers,consumers"/>

                </users>

        </simpleAuthenticationPlugin>

</plugins>  

 

</broker>

 

<!--

Enable web consoles, REST and Ajax APIs and demos

The web consoles requires by default login, you can disable this in the jetty.xml file

 

Take a look at ${ACTIVEMQ_HOME}/conf/jetty.xml for more details

-->

<import resource="jetty.xml"/>

 

</beans>

<!-- END SNIPPET: example -->