消息被消费过后会被清理掉吗?不会的。

消息是被顺序存储在commitlog文件的,且消息大小不定长,所以消息的清理是不可能以消息为单位进行清理的,而是以commitlog文件为单位进行清理的。否则会急剧下降清理效率,并实现逻辑复杂。

commitlog文件存在一个过期时间,默认为72小时,即三天。除了用户手动清理外,在以下情况下也
会被自动清理,无论文件中的消息是否被消费过:

  • 文件过期,且到达清理时间点(默认为凌晨4点)后,自动清理过期文件
  • 文件过期,且磁盘空间占用率已达过期清理警戒线(默认75%)后,无论是否达到清理时间点,
    都会自动清理过期文件
  • 磁盘占用率达到清理警戒线(默认85%)后,开始按照设定好的规则清理文件,无论是否过期。
    默认会从最老的文件开始清理
  • 磁盘占用率达到系统危险警戒线(默认90%)后,Broker将拒绝消息写入

需要注意以下几点:
1)对于RocketMQ系统来说,删除一个1G大小的文件,是一个压力巨大的IO操作。在删除过程中,系统性能会骤然下降。所以,其默认清理时间点为凌晨4点,访问量最小的时间。也正因如果,我们要保障磁盘空间的空闲率,不要使系统出现在其它时间点删除commitlog文件的情况。
2)官方建议RocketMQ服务的Linux文件系统采用ext4。因为对于文件删除操作,ext4要比ext3性
能更好

【RocketMQ工作原理】消息的清理相关推荐

  1. rocketMQ —— 02(集群搭建、rocketmq工作原理)

    目录标题 一.相关推荐 二.基本架构图: 三.集群模式 1.单Master模式(这种单节点的理论上不叫集群) 2.多Master模式 3.多Master多Slave模式(异步) 4.多Master多S ...

  2. 分布式消息队列RocketMQ工作原理与应用(一)

    第 1 章 RocketMQ概述 一.MQ概述 1 .MQ简介 MQ,Message Queue,是一种提供消息队列服务的中间件,也称为消息中间件,是一套提供了消息生产.存储.消费全过程API的软件系 ...

  3. 【RocketMQ工作原理】

    什么是消费幂等 当出现消费者对某条消息重复消费的情况时,重复消费的结果与消费一次的结果是相同的,并且多次消 费并未对业务系统产生任何负面影响,那么这个消费过程就是消费幂等的. 幂等:若某操作执行多次与 ...

  4. 【RocketMQ工作原理】消息的存储

    RocketMQ中的消息存储在本地文件系统中,这些相关文件默认在当前用户主目录下的store目录中. abort:该文件在Broker启动后会自动创建,正常关闭Broker,该文件会自动消失.若在没有 ...

  5. 【RocketMQ工作原理】消息的生产过程

    1 消息的生产过程 Producer可以将消息写入到某Broker中的某Queue中,其经历了如下过程: Producer发送消息之前,会先向NameServer发出获取消息Topic的路由信息的请求 ...

  6. 【RocketMQ工作原理】消息堆积与消费延迟

    概念 消息处理流程中,如果Consumer的消费速度跟不上Producer的发送速度,MQ中未处理的消息会越来 越多(进的多出的少),这部分消息就被称为堆积消息.消息出现堆积进而会造成消息的消费延迟. ...

  7. 【RocketMQ工作原理】消息的消费

    消费者从Broker中获取消息的方式有两种:pull拉取方式和push推动方式.消费者组对于消息消费的模 式又分为两种:集群消费Clustering和广播消费Broadcasting. 获取消费类型 ...

  8. RocketMQ工作原理 高级功能介绍

    1.1 消息存储 分布式队列因为有高可靠性的要求,所以数据要进行持久化存储. 消息生成者发送消息 MQ收到消息,将消息进行持久化,在存储中新增一条记录 返回ACK给生产者 MQ push 消息给对应的 ...

  9. 【RocketMQ工作原理】offset管理

    这里的offset指的是Consumer的消费进度offset 消费进度offset是用来记录每个Queue的不同消费组的消费进度的.根据消费进度记录器的不同,可以 分为两种模式:本地模式和远程模式. ...

最新文章

  1. createTextRange 创建文本对象
  2. 阿里巴巴对Java编程【异常处理】的规约
  3. 比特币、以太坊、瑞波币、万融链和区块链
  4. linux : epoll详解
  5. Guice系列之用户指南(八)
  6. [转]为什么python标准库没有实现链表
  7. 装饰者模式(Decorator pattern)
  8. Python---基础-运算符int和range函数
  9. BZOJ3711 : [PA2014]Druzyny
  10. java项目实战之404错误原因总结
  11. 小学计算机课的微案例,全国中小学信息技术课程教学案例大赛获奖作品 趣味造型制作.doc...
  12. 论坛源码手机php,【校园社区APP】带后台完整社区论坛手机应用源码
  13. 将PC端固定布局页面改成移动端流体布局。
  14. 洛谷P4093 [HEOI2016/TJOI2016]序列
  15. 35岁了,依然倔强的相信未来!——我的2021年终总结
  16. 【毕业设计】基于大数据的招聘职业爬取与分析可视化
  17. 半胱氨酸蛋白酶Caspase-8 Inhibitor I, 886462-83-5
  18. linux svn checkout代码shell脚本
  19. 万维网互联网计算机网络的区别,姜多多:万维网,互联网与因特网有什么区别?...
  20. 常用Android代码

热门文章

  1. 本周开课——6天精通AI、PS、GraphPad Prism等软件,轻松制作各种高分SCI杂志插图!...
  2. Office Word 2019中找不到EndnoteX9的解决方案
  3. Microbiome: 16S rRNA基因拷贝数应该被校正吗?
  4. Python使用matplotlib可视化斜率图、对比同一数据对象前后(before、after)两个状态的差异(Slope Chart)
  5. R语言基于自定义函数构建xgboost模型并使用LIME解释器进行模型预测结果解释:基于训练数据以及模型构建LIME解释器解释一个iris数据样本的预测结果、LIME解释器进行模型预测结果解释并可视化
  6. python可视化多个机器学习模型在训练集(train set)上交叉验证(cross validation)的AUC值、可视化模型效能
  7. 林园投资体系+嘴巴经济+病从口入+老龄化
  8. 搭建linux下eclipse php完美搭建开发php,搭建linux上的Eclipse+PHP编程环境
  9. 人脑认知科学对人工智能的启示
  10. JAVA基础8-封装(2)