从官网copy出来,做了部分修改:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:amq="http://activemq.apache.org/schema/core" 5 xsi:schemaLocation="http://www.springframework.org/schema/beans 6 http://www.springframework.org/schema/beans/spring-beans.xsd 7 http://activemq.apache.org/schema/core 8 http://activemq.apache.org/schema/core/activemq-core.xsd"> 9 10 <!-- Allows us to use system properties as variables in this configuration file --> 11 <!-- <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 12 <property name="locations"> 13 <value>file:${activemq.conf}/credentials.properties</value> 14 </property> 15 </bean> --> 16 <!-- 17 The <broker> element is used to configure the ActiveMQ broker. 18 --> 19 <broker xmlns="http://activemq.apache.org/schema/core" brokerName="zhang" dataDirectory="."> 20 <!-- 21 For better performances use VM cursor and small memory limit. 22 For more information, see: 23 24 http://activemq.apache.org/message-cursors.html 25 26 Also, if your producer is "hanging", it's probably due to producer flow control. 27 For more information, see: 28 http://activemq.apache.org/producer-flow-control.html 29 --> 30 <destinationPolicy> 31 <policyMap> 32 <policyEntries> 33 <policyEntry topic=">" producerFlowControl="true"> 34 <!-- The constantPendingMessageLimitStrategy is used to prevent 35 slow topic consumers to block producers and affect other consumers 36 by limiting the number of messages that are retained 37 For more information, see: 38 39 http://activemq.apache.org/slow-consumer-handling.html 40 41 --> 42 <pendingMessageLimitStrategy> 43 <constantPendingMessageLimitStrategy limit="1000"/> 44 </pendingMessageLimitStrategy> 45 </policyEntry> 46 <policyEntry queue=">" producerFlowControl="true" memoryLimit="1mb"> 47 <!-- Use VM cursor for better latency 48 For more information, see: 49 50 http://activemq.apache.org/message-cursors.html 51 52 <pendingQueuePolicy> 53 <vmQueueCursor/> 54 </pendingQueuePolicy> 55 --> 56 <deadLetterStrategy> 57 <individualDeadLetterStrategy queuePrefix="TEST"/> 58 </deadLetterStrategy> 59 <pendingQueuePolicy> 60 <storeCursor/> 61 </pendingQueuePolicy> 62 </policyEntry> 63 </policyEntries> 64 </policyMap> 65 </destinationPolicy> 66 <!-- 67 The managementContext is used to configure how ActiveMQ is exposed in 68 JMX. By default, ActiveMQ uses the MBean server that is started by 69 the JVM. For more information, see: 70 71 http://activemq.apache.org/jmx.html 72 --> 73 <managementContext> 74 <managementContext createConnector="false"/> 75 </managementContext> 76 <!-- 77 Configure message persistence for the broker. The default persistence 78 mechanism is the KahaDB store (identified by the kahaDB tag). 79 For more information, see: 80 81 http://activemq.apache.org/persistence.html 82 --> 83 <persistenceAdapter> 84 <kahaDB directory="kahadb"/> 85 </persistenceAdapter> 86 <!-- 87 The systemUsage controls the maximum amount of space the broker will 88 use before slowing down producers. For more information, see: 89 http://activemq.apache.org/producer-flow-control.html 90 If using ActiveMQ embedded - the following limits could safely be used: 91 92 <systemUsage> 93 <systemUsage> 94 <memoryUsage> 95 96 <memoryUsage limit="20 mb"/> 97 </memoryUsage> 98 <storeUsage> 99 <storeUsage limit="1 gb"/> 100 </storeUsage> 101 <tempUsage> 102 <tempUsage limit="100 mb"/> 103 </tempUsage> 104 </systemUsage> 105 </systemUsage> 106 --> 107 <systemUsage> 108 <systemUsage> 109 <memoryUsage> 110 <memoryUsage limit="1 mb"/> 111 </memoryUsage> 112 <storeUsage> 113 <storeUsage limit="32 mb"/> 114 </storeUsage> 115 <tempUsage> 116 <tempUsage limit="32 mb"/> 117 </tempUsage> 118 </systemUsage> 119 </systemUsage> 120 <!-- 121 The transport connectors expose ActiveMQ over a given protocol to 122 clients and other brokers. For more information, see: 123 124 http://activemq.apache.org/configuring-transports.html 125 --> 126 <transportConnectors> 127 <!-- DOS protection, limit concurrent connections to 1000 and frame size to 100MB --> 128 <transportConnector name="openwire" 129 uri="tcp://0.0.0.0:61616?maximumConnections=1000"/> 130 <transportConnector name="amqp" 131 uri="amqp://0.0.0.0:5672?maximumConnections=1000"/> 132 </transportConnectors> 133 <!-- destroy the spring context on shutdown to stop jetty --> 134 <shutdownHooks> 135 <bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.hooks.SpringContextHook"/> 136 </shutdownHooks> 137 </broker> 138 <!-- 139 Enable web consoles, REST and Ajax APIs and demos 140 141 Take a look at ${ACTIVEMQ_HOME}/conf/jetty.xml for more details 142 --> 143 <!-- <import resource="jetty.xml"/> --> 144 </beans>
关于通配符的说明(http://activemq.apache.org/wildcards.html):
. is used to separate names in a path
* is used to match any name in a path
> is used to recursively match any destination starting from this name