RabbitMq持久化
持久化文件何时删除:
当所有文件中的垃圾消息(已经被删除的消息)比例大于阈值(GARBAGE_FRACTION = 0.5)时,会触发文件合并操作(至少有三个文件存在的情况下),以提高磁盘利用率。
publish消息时写入内容,ack消息时删除内容(更新该文件的有用数据大小),当pub次数和ack次数相等时会删除,因为垃圾回收不是实时进行的,所以将两个数量进行对比,可以保证最终数据正确性。
持久化的必要性:
队列持久化=性能>安全?false:true;
持久化降低大约30%的发布效率,40%订阅效率(视机器、队列内容,线程配置等综合考虑,持久化还是很吃性能的,大约在30%左右)。
相关思考、随时更新。