MQ學習系列:html
第一步:在${activemq.base}/conf/activemq.xml文件中配置持久化適配器。java
<!-- Configure message persistence for the broker. The default persistence mechanism is the KahaDB store (identified by the kahaDB tag). For more information, see: http://activemq.apache.org/persistence.html --> <persistenceAdapter> <kahaDB directory="${activemq.data}/kahadb"/> </persistenceAdapter>
以上配置爲默認,文件地址爲E:\ActiveMQ\apache-activemq-5.15.8\data\kahadb目錄下。mysql
第二步:發送消息時代碼sql
//參數:消息, 持久化/不持久化,優先級,存儲時長ms producer.send(message,DeliveryMode.PERSISTENT,1,1000*60*5);
咱們看看DeliveryMode這個類是什麼鬼?數據庫
// IntelliJ API Decompiler stub source generated from a class file // Implementation of methods is not available package javax.jms; public interface DeliveryMode { int NON_PERSISTENT = 1; int PERSISTENT = 2; }
第三步:消息訂閱者建立消費對象時apache
//設置客戶端id connection.setClientID("client-1");
//客戶端持久化訂閱 TopicSubscriber consumer = session.createDurableSubscriber(topic, "client1-sub");
通過如上三步,咱們即可以經過文件來持久化咱們的Topic訂閱。session
第一步:將MySQL的數據庫驅動複製到ActiveMQ的lib目錄下。ide
第二步:在${activemq.base}/conf/activemq.xml文件中配置持久化配置。學習
<persistenceAdapter> <jdbcPersistenceAdapter dataDirectory="${activemq.base}/data" dataSource="#mysql-ds"/> </persistenceAdapter>
第三步:在${activemq.base}/conf/activemq.xml文件中配置數據源。url
<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://localhost:3306/activemq?relaxAutoCommit=true"/> <property name="username" value="root"/> <property name="password" value="root"/> <property name="poolPreparedStatements" value="true"/> </bean>
配置完成啓動程序,系統自動生成三張表;
具體表結構參考 這裏