当前位置: 首页 > news >正文

kafka---消息日志详解

一、Log Flush Policy(log flush 策略)

1、设置内存中保留日志的个数,当达到这个数量的时候,内存中的数据会被强制刷到disk中
log.flush.interval.messages=10000

2、设置内存中保留日志的时间,当达到这个时间的时候,日志会被刷新到disk中
log.flush.interval.ms=1000

二、Log Retention Policy (日志保留策略)

1、 日志保留时间,超过该时间,日志会被删除
log.retention.hours=48

2、设置一个分区的大小(该分区包含所有的segment文件),segment文件会被删除(pruned)直到剩余的segment文件小于(drop below)该设置大小
A size-based retention policy for logs. Segments are pruned from the log unless the remaining segments drop below log.retention.bytes. Functions independently of log.retention.hours.

log.retention.bytes=1073741824

3、设置一个segment的大小,当达到这个大小的时候,会创建一个新的segment新文件重新写日志
log.segment.bytes=1073741824

4、设置一个时间间隔,用于检查是否需要删除segment文件(检查是否需要删除的频率)
log.retention.check.interval.ms=300000

5、日志文件被真正删除前的保留时间
log.segment.delete.delay.ms=60000

注意:当删除的条件满足的视乎,日志将会被"删除",但是这里的删除其实只是将该日志进行了”delete“标注,文件只是无法被索引到了而已,但是文件本身仍然是存在的,只有当过了log.segment.delete.delay.ms这个时间后,文件才会被删除

三、问题

Q1 kafka消费的是内存中的数据还是磁盘中的数据?消息流转流程?

既会消费内存中的数据也会消费磁盘上的数据

producer----broker内存------flush到磁盘----加载到broker内存----consumer消费
|-------consumer消费

Q2 log.flush.interval.messages 与 log.flush.interval.ms 这两个参数以哪个为准?

上述两个参数,设置了哪个参数,则哪个参数生效,如果没设置则按照默认值来;如果都设置了,则任意一个达到要求都会执行flush
log.flush.interval.messages 默认值 9223372036854775807
log.flush.interval.ms 默认值为ull,如果未设置,则使用log.flush.scheduler.interval.ms 默认值 9223372036854775807

Q3 log.retention.hours 与 log.retention.bytes 这两个参数以哪个为准?

上述两个参数,设置了哪个参数,则哪个参数生效,如果没设置则按照默认值来;如果都设置了,则任意一个达到要求都会执行删除;
log.retention.hours 默认是168h,达到这个时间,会执行清理策略
log.retention.bytes 默认是-1 则大小无上限

Q4 未被消费的数据,但是达到了时间上限或者大小上限 ,日志会被删除吗?

会被删除

Q5 如何查看消息消费进度

kafka-consumer-groups  --bootstrap-server "ip1:port1,ip2:port2,ip3,port3"  --group "group1" --group "group2"   --describe 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【LeetCode】day17:654 - 最大二叉树, 617 - 合并二叉树, 700 - 二叉树搜索树中的搜索, 98 - 验证二叉搜索树
  • PyTorch Tabular:高效优化结构化数据处理的强大工具
  • 达梦数据库系列—29. DTS迁移ORACLE到DM
  • C++多线程编程中的锁详解
  • 并发编程面试题1
  • 在C#中,如何优化对象的创建和销毁以提高性能?
  • c# excel转pdf
  • 16QAM实验报告【附全部MATLAB代码】
  • 高阶面试-hw算法整理
  • 2013年全国大学生数学建模竞赛B题碎纸片复原(含word论文和源代码资源)
  • Python PDF Magic:合并和拆分随心所欲
  • windows server——5.DNS管理器域名解析搭建网站
  • 快速创建 vue 项目并添加 Dockerfile 文件
  • 手动构建线性回归(PyTorch)
  • 如何搭建一个RADIUS服务器?
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • Bytom交易说明(账户管理模式)
  • export和import的用法总结
  • JavaScript设计模式系列一:工厂模式
  • Laravel 菜鸟晋级之路
  • node.js
  • ReactNative开发常用的三方模块
  • spring-boot List转Page
  • 给github项目添加CI badge
  • 记一次和乔布斯合作最难忘的经历
  • 普通函数和构造函数的区别
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 深度学习入门:10门免费线上课程推荐
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 微信支付JSAPI,实测!终极方案
  • 我从编程教室毕业
  • 移动端 h5开发相关内容总结(三)
  • 异步
  • 原生 js 实现移动端 Touch 滑动反弹
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • 怎样选择前端框架
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • ​【已解决】npm install​卡主不动的情况
  • # 计算机视觉入门
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • ###STL(标准模板库)
  • #14vue3生成表单并跳转到外部地址的方式
  • #考研#计算机文化知识1(局域网及网络互联)
  • $.ajax,axios,fetch三种ajax请求的区别
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (javaweb)Http协议
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (Python) SOAP Web Service (HTTP POST)
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (力扣)循环队列的实现与详解(C语言)
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • 、写入Shellcode到注册表上线