activemq的高级特性:消息存储持久化

activemq的高级特性之消息存储持久化

  有基于文件的,数据库的,内存的。默认的是基于文件的,在安装目录/data/kahadb。在conf/activemq.xml文件中。

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

  把存储持久化换成mysql的数据库。

  1:修改配置文件

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

  在</broker>标签后面添加<bean>

  <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/表名?

    relaxAutoCommit=true&amp;useUnicode=true&amp;characterEncoding=utf-8&amp;serverTimezone=UTC"/>
    <property name="username" value="数据库用户名"/>
    <property name="password" value="数据库密码"/>
    <property name="poolPreparedStatements" value="true"/>
  </bean>

  

  注:

    1:表名要自己 创建

    2:class根据activemq不同的版本,写不同的类,具体参考lib/optional文件夹中的commons-dbcp-1.4.jar。

    3:导入连接数据库的jar包

    4:如果数据库是5.7的。可能会出现启动失败,数据库直接挂掉。解决办法:下载 windows6.1-KB976932-X64.exe 安装即可解决。 

原文地址:https://www.cnblogs.com/orange-time/p/10638054.html