ActiveMQ (二) 常用配置簡介


ActiveMQ的主要配置文件

ActiveMQ的一些常用的屬性很多可以在對應的配置文件中進行配置的。比如訪問web console的管理端的端口,用戶名密碼,連接MQ時的用戶名和密碼,持久化設置,是否啟用消息優先級的設置等。

1. 配置ActiveMQ的web Console控制台端口:

在jetty.xml文件中:

<bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start">
             <!-- the default port number for the web console -->
        <property name="host" value="0.0.0.0"/>
        <property name="port" value="8161"/>
</bean>

2. ActiveMQ的web Console控制台用戶名密碼配置:

當登錄http://localhost:8161進入管理界面時,輸入用戶名密碼配置在文件etty-realm.properties中,添加一個用戶為"aries"密碼為"123"的管理員如下:

# Defines users that can access the web (console, demo, etc.)
# username: password [,rolename ...]
admin: admin, admin
user: user, user
aries: 123, admin

第一列為用戶名,第二列是密碼,第三列表示角色。

3. ActiveMQ的安全性設置:

比如下程序連接獲取MQ連接的時候需要設置用戶名密碼,如果設置為默認的任何人都可以進行生產和消費對應Destination的消息,這樣就存在安全性問題。

//創建connectionFactory
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(//
"aries",//ActiveMQConnectionFactory.DEFAULT_USER,
"aries",//ActiveMQConnectionFactory.DEFAULT_PASSWORD,
"tcp://localhost:61616");

程序最開始的用戶名和密碼為默認的,新設置的用戶名和密碼都為"aries",在ActiveMQ.xml文件中,添加一個插件配置代碼如下:

<plugins>
   <simpleAuthenticationPlugin>
       <users>
          <authenticationUser username="aries" password="aries" groups="users,admins"/>
       </users>
   </simpleAuthenticationPlugin>
</plugins>

4. 設置MQ的持久化方式:

ActiveMQ默認使用KaHadb進行持久化消息存儲, 配置在ActiveMQ.xml文件中:

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

a. 現在我們將持久化存儲方式修改為mysql,則修改上面的配置文件如下:

<persistenceAdapter>

         <jdbcPersistenceAdapter  dataSource="#derby-ds"/>

</persistenceAdapter>

b. 同時添加mysq數據源的配置:

<bean id="derby-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
  <property name="url" value="jdbc:mysql://localhost:3306/activemq?relaxAutoCommit=true"/>
  <property name="username" value="root"/>
  <property name="password" value="123"/>
  <property name="maxActive" value="200"/>
  <property name="poolPreparedStatements" value="true"/>
</bean>

c. 添加mysql驅動等依賴包到ActiveMQ的lib目錄下:

  mysql-connector-Java-5.1.30-bin.jar

  commons-dbcp-1.4.jar

  commons-pool-1.6.jar

d. 在mysql中創建 activemq 數據庫,然后啟動ActiveMQ,如果數據test庫中生成 activemq_acks,activemq_lock,activemq_msgs三張表,則證明mysql持久化存儲配置完成。

5.配置消息接收發送順序按照優先級進行:

在發送消息的時候我們可以設置消息的優先級,來確定消息的接收順序(對於單個MQ來說,如果是集群就不能確定優先級順序了),優先級的使用需要在ActiveMQ.xml配置文件中進行開啟:

 <policyEntry queue=">"  prioritizedMessages="true" />  

后續配置再做補充。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM