1 Star 0 Fork 0

le1024 / le1024

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
19_activemq可持久化机制-JDBC的journal.md 1.76 KB
一键复制 编辑 原始数据 按行查看 历史
le1024 提交于 2022-04-28 10:27 . m

image-20210818125934139

对于activemq长期的持久性,在使用JDBC时建议也使用高性能的journal

Activemq Journal,使用了高速缓存写入技术,大大提高了性能,由于JDBC每次将消息去写库和读库会耗费时间,消息数据量多的话,就会造成频繁的写库。

journal是会把生产这者生产的消息存到journal文件中,在消费者消费很快的情况下,journal文件中的消息未同步到DB之前,消费者已经消费了90%的消息,这时,只需要同步剩下的10%的消息到DB。如果消费者消费速度很慢,journal文件可以以批量的方式写到DB。

journal配置

activemq.xml中修改配置

之前jdbc的配置:

 <persistenceAdapter>
     <jdbcPersistenceAdapter dataDirectory="activemq-data" useDatabaseLock="false"  dataSource="#mysql-ds"  createTablesOnStartup="true"  />
</persistenceAdapter>

改成:添加journal配置

 <persistenceFactory>
     <journalPersistenceAdapterFactory 
                                       journalLogFiles="4"
                                       journalLogFileSize="32768"
                                       useJournal="true"
                                       useQuickJournal="true"
                                       dataDirectory="activemq-data" 
                                       useDatabaseLock="false"  
                                       dataSource="#mysql-ds"  
                                       createTablesOnStartup="true"  />
</persistenceFactory>

测试

启动生产者生产消息,再去查看数据库,ACTIVEMMQ_MSGS不会立即就会有消息写入,由于journal的存在,需要等待一会

马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/le1024/le1024.git
git@gitee.com:le1024/le1024.git
le1024
le1024
le1024
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891