activemq配置详解

来源:互联网 发布:复杂网络理论百度百科 编辑:程序博客网 时间:2024/06/04 22:41

下面是activemq.xml中的配置详解。

  1. <beans 
  2.   xmlns="http://www.springframework.org/schema/beans" 
  3.   xmlns:amq="http://activemq.apache.org/schema/core" 
  4.   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  5.   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd 
  6.   http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd"> 
  7.  
  8.     <!-- Allows us to use system properties as variables in this configuration file --> 
  9.     <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
  10.         <property name="locations"> 
  11.             <value>file:${activemq.base}/conf/credentials.properties</value> 
  12.         </property>       
  13.     </bean> 
  14.  
  15.     <!-- The <broker> element is used to configure the ActiveMQ broker. --> 
  16.      
  17.     <!-- brokerName:必须定义一个名称 --> 
  18.     <!-- 不使用持久化存储:persistent="false",注意:内存要足够大 --> 
  19.     <broker xmlns="http://activemq.apache.org/schema/core" brokerName="testBroker" dataDirectory="${activemq.base}/data" destroyApplicationContextOnStop="true" persistent="true"> 
  20.   
  21.                
  22.         <destinationPolicy> 
  23.             <policyMap> 
  24.               <policyEntries> 
  25.               <!-- 如果设定了<systemUsage>,则全局按照<systemUsage>,这里精细控制每一个q --> 
  26.               <!-- 设定了flowcontrol以后,会根据memorylimit的缓冲区设定的大小,决定producer的流速,即:可能拖慢producer --> 
  27.               <!-- 设定flowcontrol false后(同时不设定systemUsage),虽然不会拖慢producer,但是可能会占用大量activemq的内存,如果处理仍然不及时,可能最终导致amq outofmemory --> 
  28.               <!-- 参考下面<systemUsage>的说明 --> 
  29.               <!-- 设定了false以后,表示producer直接都给,直到撑死systemUsage,才报客户端Exception --> 
  30.                 <policyEntry topic=">" producerFlowControl="false" topicPrefetch="1000" useCache="true"> 
  31.                   <pendingSubscriberPolicy> 
  32.                     <vmCursor /> 
  33.                   </pendingSubscriberPolicy> 
  34.                 </policyEntry> 
  35.                  
  36.                 <!-- 设定true,表示超过memoryLimit以后,就等,等到systemUsage设定的超时时间报Exception --> 
  37.                 <!-- 尽管可以让systemUsage统一管理全部的,但也就失去了精细管理每一个队列的能力,如果队列有重要和不重要之分,即:有的允许丢数据的,就设定true和memoryLimit;有的不允许的,就单独设定 --> 
  38.                 <!-- 关于amq的特殊检测参数也在这里设定,参见http://activemq.apache.org/advisory-message.html --> 
  39.                 <!-- queuePrefetch:一次分配给consumer多少数量的消息 --> 
  40.                 <policyEntry queue=">" producerFlowControl="true" memoryLimit="4mb" queuePrefetch="1000" useCache="true"> 
  41.                   <!-- Use VM cursor for better latency 
  42.                        For more information, see: 
  43.                         
  44.                        http://activemq.apache.org/message-cursors.html 
  45.                         
  46.                   <pendingQueuePolicy> 
  47.                     <vmQueueCursor/> 
  48.                   </pendingQueuePolicy> 
  49.                   --> 
  50.                 </policyEntry> 
  51.               </policyEntries> 
  52.             </policyMap> 
  53.         </destinationPolicy>  
  54.   
  55.          
  56.         <!-- 设定jmx管理端口 --> 
  57.         <managementContext> 
  58.             <managementContext connectorPort="62222" jmxDomainName="testDomain" createConnector="true"/> 
  59.         </managementContext> 
  60.  
  61.         <!-- 设定持久化方案 --> 
  62.         <persistenceAdapter> 
  63.             <!-- 稳定性最强的一个 --> 
  64.             <!-- <amqPersistenceAdapter useNIO="true" directory="target/Broker2-data/activemq-data" syncOnWrite="true" indexPageSize="16kb" persistentIndex="true" indexMaxBinSize="100" maxFileLength="10mb" maxCheckpointMessageAddSize="32kb" cleanupInterval="3000" checkpointInterval="20000" /> --> 
  65.             <!-- 对于恢复来说,这个存储不能保证完全不丢数据。它比一般存储的快50% --> 
  66.             <kahaDB directory="${activemq.base}/data/kahadb" /> 
  67.         </persistenceAdapter> 
  68.          
  69.          
  70.           <!-- System Usage 对整个的broker做全局设定--> 
  71.           <!-- 使用systemUsage,以后,如果参数值设定不当,可能导致整个的q停止相应 --> 
  72.           <!-- 好的办法是:设定systemUsage,同时设定sendFailIfNoSpaceAfterTimeout(多长时间后超时),这个超时信息会返回给producer。这样即不会让amq被撑死,有能够保证producer不被拖死 --> 
  73.           <systemUsage> 
  74.             <systemUsage sendFailIfNoSpaceAfterTimeout="1000"> 
  75.                 <memoryUsage> 
  76.                     <memoryUsage limit="32 mb"/> 
  77.                 </memoryUsage> 
  78.                 <storeUsage> 
  79.                     <storeUsage limit="5 gb"/> 
  80.                 </storeUsage> 
  81.                 <tempUsage> 
  82.                     <tempUsage limit="100 mb"/> 
  83.                 </tempUsage> 
  84.             </systemUsage> 
  85.         </systemUsage> 
  86.          
  87.         <!-- 定义连接方式,注意如果只监听内网ip,需要指定IP地址 --> 
  88.         <!-- 可以指定热备等,使用failover --> 
  89.         <transportConnectors> 
  90.             <transportConnector name="manzuoopenwire" uri="tcp://0.0.0.0:63333"/> 
  91.         </transportConnectors> 
  92.  
  93.         <!-- 对于broker,可以设定认证 --> 
  94.         <!-- 
  95.         <plugins> 
  96.             <simpleAuthenticationPlugin> 
  97.                 <users> 
  98.                     <authenticationUser username="admin" password="password" groups="admins,publishers,consumers"/> 
  99.                     <authenticationUser username="publisher" password="password" groups="publishers,consumers"/> 
  100.                     <authenticationUser username="consumer" password="password" groups="consumers"/> 
  101.                     <authenticationUser username="guest" password="password" groups="guests"/> 
  102.                 </users> 
  103.             </simpleAuthenticationPlugin> 
  104.         </plugins> 
  105.         --> 
  106.     </broker> 
  107.      
  108.      
  109.     <!-- 可以设定web 管理界面 --> 
  110.     <import resource="jetty.xml"/> 
  111. </beans> 
  1. <beans  
  2. xmlns="http://www.springframework.org/schema/beans"  
  3. xmlns:amq="http://activemq.org/config/1.0"  
  4. 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  
  5. http://activemq.org/config/1.0 http://activemq.apache.org/schema/activemq-core.xsd  
  6. http://activemq.apache.org/camel/schema/spring>  
  7. <!-- persistent="true"表示要持久化存储消息,和子元素persistenceAdapter结合使用 -->  
  8. <!-- dataDirectory默认的存储持久化数据的目录 -->  
  9. <!-- brokerName 设置broker的name,在注意在网络上必须是唯一的-->  
  10. <!-- 更多参考http://activemq.apache.org/xbean-xml-reference-50.html#XBeanXMLReference5.0-brokerelement -->  
  11. <broker xmlns="http://activemq.org/config/1.0" brokerName="192.168.1.148" persistent ="true" dataDirectory="${activemq.base}/data" useShutdownHook="false">  
  12. <!-- Destination specific policies using destination names or wildcards -->  
  13. <!-- wildcards意义见http://activemq.apache.org/wildcards.html -->  
  14. <destinationPolicy>  
  15. <policyMap>  
  16. <policyEntries>  
  17. <!-- 这里使用了wildcards,表示所有以EUCITA开头的topic -->  
  18. <policyEntry topic="EUCITA.>" producerFlowControl="false" memoryLimit="10mb">  
  19. <!-- 分发策略 -->  
  20. <dispatchPolicy>  
  21. <!-- 按顺序分发 -->  
  22. <strictOrderDispatchPolicy/>  
  23. </dispatchPolicy>  
  24. <!--  恢复策略-->  
  25. <subscriptionRecoveryPolicy>  
  26. <!-- 只恢复最后一个message -->  
  27. <lastImageSubscriptionRecoveryPolicy/>  
  28. </subscriptionRecoveryPolicy>  
  29. </policyEntry>  
  30. </policyEntries>  
  31. </policyMap>  
  32. </destinationPolicy>  
  33. <!-- The transport connectors ActiveMQ will listen to -->  
  34. <transportConnectors>  
  35. <transportConnector name="openwire" uri="tcp://192.168.1.148:61616" discoveryUri="multicast://default"/>  
  36. <transportConnector name="ssl"     uri="ssl://192.168.1.148:61617"/>  
  37. <transportConnector name="stomp"   uri="stomp://192.168.1.148:61613"/>  
  38. <transportConnector name="xmpp"    uri="xmpp://192.168.1.148:61222"/>  
  39. </transportConnectors>  
  40. <!-- 消息持久化方式 -->  
  41. <persistenceAdapter>  
  42. <amqPersistenceAdapter directory="${activemq.base}/data"/>  
  43. </persistenceAdapter>  
  44. </broker>  
  45. <!-- lets create a command agent to respond to message based admin commands on the ActiveMQ.Agent topic -->  
  46. <commandAgent xmlns="http://activemq.org/config/1.0"/>  
  47. <!-- An embedded servlet engine for serving up the Admin console -->  
  48. <jetty xmlns="http://mortbay.com/schemas/jetty/1.0">  
  49. <connectors>  
  50. <nioConnector port="8161" />  
  51. </connectors>  
  52. <handlers>  
  53. <webAppContext contextPath="/admin" resourceBase="${activemq.base}/webapps/admin" logUrlOnStart="true" />  
  54. <webAppContext contextPath="/demo" resourceBase="${activemq.base}/webapps/demo" logUrlOnStart="true" />  
  55. </handlers>  
  56. </jetty>  
  57. </beans>  
0 0