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&useUnicode=true&characterEncoding=utf-8&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 安装即可解决。