美文网首页
ActiveMQ配置

ActiveMQ配置

作者: dubingxin | 来源:发表于2019-07-09 20:38 被阅读0次

    [TOC]

    ActiveMQ配置

    java环境配置

    文件:\bin\win64\wrapper.conf

    wrapper.java.command=java

    wrapper.java.command=C:\Program Files\Java\jdk1.8.0_191\bin\java

    日志配置最大值

    文件:\bin\win64\wrapper.conf

    wrapper.logfile.maxsize=0
    wrapper.logfile.maxfiles=0
    

    wrapper.logfile.maxsize=1m
    wrapper.logfile.maxfiles=10
    

    hawtio配置

    1. 配置修改

      文件:\bin\activemq.bat

      if "%ACTIVEMQ_OPTS%" == "" set ACTIVEMQ_OPTS=-Xms1G -Xmx1G -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config="%ACTIVEMQ_CONF%\login.config"
      

      if "%ACTIVEMQ_OPTS%" == "" set ACTIVEMQ_OPTS=-Xms2G -Xmx2G -Dhawtio.realm=activemq -Dhawtio.role=admins -Dhawtio.rolePrincipalClasses=org.apache.activemq.jaas.GroupPrincipal -Djava.util.logging.config.file=logging.properties -Djava.security.auth.login.config="%ACTIVEMQ_CONF%\login.config" 
      
    1. 配置添加网站包

      文件:\conf\jetty.xml

      <bean class="org.eclipse.jetty.webapp.WebAppContext">
                       <property name="contextPath" value="/api" />
                       <property name="resourceBase" value="${activemq.home}/webapps/api" />
                       <property name="logUrlOnStart" value="true" />
                   </bean>
      

      之后添加

      <bean class="org.eclipse.jetty.webapp.WebAppContext">        
                           <property name="contextPath" value="/hawtio" />        
                           <property name="war" value="${activemq.home}/webapps/hawtio" />        
                           <property name="logUrlOnStart" value="true" />  
                   </bean>
      

    死信

    文件:\conf\activemq.xml

    1. broker中添加

      <plugins>
                 <!-- 86,400,000ms = 1 day -->
                 <timeStampingBrokerPlugin ttlCeiling="30000" zeroExpirationOverride="30000" />
                 <discardingDLQBrokerPlugin dropAll="true"  dropTemporaryTopics="true" dropTemporaryQueues="true" />
              </plugins>
      
    1. broker->destinationPolicy->policyMap->policyEntries中添加

      <policyEntry queue=">" gcInactiveDestinations="true" inactiveTimoutBeforeGC="30000">
                        <deadLetterStrategy>
                          <sharedDeadLetterStrategy processExpired="true"  expiration="30000"/>
                        </deadLetterStrategy>
                      </policyEntry>
      

    mysql持久化

    文件:\conf\activemq.xml

    1. 持久化配置修改

       <persistenceAdapter>
                  <kahaDB directory="${activemq.data}/kahadb"/>
              </persistenceAdapter>
      

       <persistenceAdapter>
                  <jdbcPersistenceAdapter dataSource="#my-ds"/>
              </persistenceAdapter>
      
    1. broker之后添加bean

        <bean id="my-ds" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
                      <property name="driverClassName" value="com.mysql.jdbc.Driver" />
                      <property name="url" value="jdbc:mysql://localhost/activemq?characterEncoding=latin1" />
                      <property name="username" value="activemq" />
                      <property name="password" value="password" />
                      <property name="initialSize" value="5" />
                      <property name="maxTotal" value="1000" />
                      <property name="maxIdle" value="30" />
                      <property name="maxWaitMillis" value="10000" />
                      <property name="minIdle" value="1" />
          </bean>
      
    2. 添加mysql对应的jar包。例:mysql-connector-java-5.1.47.jar

    远程监控JMX设置

    1. 在broker节点增加useJmx=”true”

      文件:\conf\activemq.xml

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

      <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}" useJmx="true">
      
    1. 更改managementContext

      <managementContext>
                  <managementContext createConnector="false"/>
              </managementContext>
      

      <managementContext>
                  <managementContext createConnector="true" connectorPort="11099"/>
              </managementContext>
      
    1. 设置jmx.access文件

      monitorRole readonly
      controlRole readwrite
      

      添加上面两行值,表示角色及其权限

    2. 设置jmx.password

      monitorRole dubx123
      controlRole dubx123
      

      设置角色以及密码

    3. 添加配置

      \bin\activemq.bat添加

      ACTIVEMQ_SUNJMX_START="-Dcom.sun.management.jmxremote.port=11099 "  
      ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=${ACTIVEMQ_CONF}/jmx.password"  
      ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_CONF}/jmx.access"  
      ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.ssl=false"  
      
    1. jconsole访问activemq

      service:jmx:rmi:///jndi/rmi://127.0.0.1:11099/jmxrmi
      
    2. 查看CurrentStatus、DurableTopicSubscribers、DynamicDestinationProducers、InactiveDurableTopicSubscribers、Topics、CurrentConnectionsCount、TotalConnectionsCount、TotalEnqueueCount、TotalDequeueCount、TotalConsumerCount

    8.数据库锁

    <jdbcpersistenceadapter datadirectory="activemq-data" datasource="#mysql-ds" transactionisolation="4" usedatabaselock="false"></jdbcpersistenceadapter>
    

    相关文章

      网友评论

          本文标题:ActiveMQ配置

          本文链接:https://www.haomeiwen.com/subject/ocofkctx.html