多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 一、概述 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 配置一个数据源,用数据库存储; 考虑到性能和稳定性,还是使用默认的文件系统的日志来做数据持久化;