🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 一、概述 Artemis 提供了2种持久化方式,以便系统恢复后消息重新投递; * 文件日志:性能优越,默认的方式 * JDBC ## 二、文件日志 Artemis的文件日志由多个文件组成,每个文件都是固定大小,预先创建;add message, update message, delete message都会记录到文件日志,当一个文件满了之后,记录到下一个日志文件; #### **文件日志的写入方式** * Java NIO * Linux Asynchronous IO * Memory mapped ### **日志分类** * bindings journal:保存了绑定相关数据:包含了queue的信息和属性,id序列计数器,始终是Java NIO方式,因为比起message 日志,bindings日志量级低; * message journal:保存了消息相关数据:包含消息本身,重复Id缓存。 默认使用 AIO,如果不支持 AIO 回退到 Java NIO; * large message data * duplicate id caches * paging data ## 三、JDBC 配置一个数据源,用数据库存储; 考虑到性能和稳定性,还是使用默认的文件系统的日志来做数据持久化;