activemq-docker下安裝和配置JDBC持久化

目錄

一、安裝activemq

二、amq數據庫持久化

三、表說明


一、安裝activemq

1、下載activemq鏡像

docker pull webcenter/activemq

2、查看activemq鏡像

docker images

 

二、amq數據庫持久化

1、在mysql中創建對應的數據庫 

例如:amq數據庫

2、下載mysql-connector-java-5.1.49.jar

下載地址:https://dev.mysql.com/downloads/connector/j/5.1.html

3、運行amq容器帶文件夾

docker run -d -v /usr/amq:/opt/activemq/amq  --name activemq -p 61616:61616 -p 8161:8161 webcenter/activemq

4、進容器操作

docker exec -it activemq /bin/bash

5、拷貝文件到lib下

cp amq/mysql-connector-java-5.1.49.jar lib

6、修改配置文件

 vim conf/activemq.xml

 

註釋原來的持久化配置

 80 <!--

 81         <persistenceAdapter>

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

 83         </persistenceAdapter>

 84 -->

 

添加數據庫適配器

<persistenceAdapter>

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

</persistenceAdapter>

添加數據庫連接屬性配置

  <bean id="mysql-ds" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">

     <property name="driverClassName" value="com.mysql.jdbc.Driver"/>

     <property name="url" value="jdbc:mysql://192.168.110.130:3306/amq?relaxAutoCommit=true"/>    

     <property name="username" value="root"/>    

     <property name="password" value="123456"/> 

     <property name="poolPreparedStatements" value="true"/>

   </bean>

7、保存配置文件,退出容器,重啓docker容器

Docker restart activemq

 

重啓後就會看到amq數據庫創建了3張表

至此,基於docker的activemq  JDBC持久化配置完成

 

 

三、表說明

1、activemq_msgs表

作用:用於存儲消息,Queue和Topic都存儲在這個表中:

ID:自增的數據庫主鍵

CONTAINER:消息的Destination

MSGID_PROD:消息發送者客戶端的主鍵

MSG_SEQ:是發送消息的順序,MSGID_PROD+MSG_SEQ可以組成JMS的MessageID

EXPIRATION:消息的過期時間,存儲的是從1970-01-01到現在的毫秒數

MSG:消息本體的Java序列化對象的二進制數據

PRIORITY:優先級,從0-9,數值越大優先級越高

2、activemq_acks表

作用:用於存儲訂閱關係。如果是持久化Topic,訂閱者和服務器的訂閱關係在這個表保存:

主要的數據庫字段如下:

CONTAINER:消息的Destination

SUB_DEST:如果是使用Static集羣,這個字段會有集羣其他系統的信息

CLIENT_ID:每個訂閱者都必須有一個唯一的客戶端ID用以區分

SUB_NAME:訂閱者名稱

SELECTOR:選擇器,可以選擇只消費滿足條件的消息。條件可以用自定義屬性實現,可支持多屬性AND和OR操作

LAST_ACKED_ID:記錄消費過的消息的ID。

 

3、activemq_lock表

作用:在集羣環境中才有用,只有一個Broker可以獲得消息,稱爲Master Broker,

其他的只能作爲備份等待Master Broker不可用,纔可能成爲下一個Master Broker。
這個表用於記錄哪個Broker是當前的Master Broker。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章