先说JDBC With Journal是什么,这个东西可以简单理解为JDBC的增强吧,它比JDBC的速度要快,是利用高速缓存实现的。
因为JDBC的读写性能还是有瓶颈的,所以出现了这么个东西,当消息到来后,先存储到这个缓存中,而不是直接落库,缓存的速度可是非常快的 ,当消息消费者的速度能够及时跟上消息生产者的速度时,就能避免全部消息入库,从而达到提高速度的目的。如果说消费者消费的速度比较慢,那么缓存可以批量将消息写入db,而不是每次一条一条的处理,批处理的速度是快于一次一条的。
修改conf目录下的activemq.xml配置文件的persistenceAdapter结点,将其替换成下面的内容。
<persistenceFactory>
<journalPersistenceAdapterFactory journalLogFiles="4" journalLogFileSize="32768" useJournal="true" useQuickJournal="true" dataDirectory="activemq-data" dataSource="#mysql-ds"/>
</persistenceFactory>
修改好配置后,重启ActiveMQ服务,做测试。这个地方因为用了Journal做缓存,所以持久化的消息并不会立刻在DB中看到,可以多等一会儿,可以尝试10分钟吧。