kafka数据清理配置——删除篇

这篇具有很好参考价值的文章主要介绍了kafka数据清理配置——删除篇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

本意利用kafka实现一个类似redis发布订阅的模式,比redis多了一个数据分区的功能。kafka里面的数据我们是不需要存储的,因此我们需要配置对应的删除策略

Kafka版本号

2.8.1

数据清理策略

kafka有两种数据清理策略,delete删除compact压缩,默认是删除。
delete:一般是使用按照时间保留的策略,当不活跃的segment的时间戳是大于设置的时间的时候,当前segment就会被删除
compact: 日志不会被删除,会被去重清理,这种模式要求每个record都必须有key,然后kafka会按照一定的时机清理segment中的key,对于同一个key只保留罪行的那个key.同样的,compact也只针对不活跃的segment

segment

简介
kafka每个主题有1个或者多个分区组成,对于kakfa生产者和消费者,最多指定推送或者消费哪个具体分区就行。不过kafka在数据存储中,分区又是一个或者多个segment组成。
生成segment的相关配置
log.segment.bytes: 每个segment的大小,达到这个大小会产生新的segment, 默认是1G
log.segment.ms: 配置每隔n ms产生一个新的segment,默认是168h,也就是7天

其他配置

log.retention.ms
segment的最后写入record的时间-当前时间 > retention.ms 的segment会被删除,默认是168h, 7天
ps:这句话很重要,多读几遍去理解它。之前博主就是误以为类似segment不会存活到我所配置的时间,其实是只要没有新segment产生+不停地往该segment写数据就不会删除该段。
如果满足删除条件的话,segment也不会立即删除,只是会打上delete标签。
log.retention.check.interval.ms
每隔多久检查一次是否有可以删除的log,默认是300s,5分钟,删除上面说的打上delete标签的segment

我的配置

因为我是docker部署的,我是将这些当作环境变量写在了docker-compose里面:文章来源地址https://www.toymoban.com/news/detail-450841.html

version: "3.0"
services:
  kafka:
    environment:
      # segment最后一次写入的时间 减去当前时间大于40s的话,会被打上删除标签
      KAFKA_LOG_RETENTION_MS: 40000
      # 10M分一次segment
      KAFKA_LOG_SEGMENT_BYTES: 10485760
      # 每60s将打上删除标签的segment删除
      KAFKA_LOG_RETENTION_CHECK_INTERVAL_MS: 60000

到了这里,关于kafka数据清理配置——删除篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何利用 ChatGPT 进行自动数据清理和预处理

    推荐:使用 NSDT场景编辑器助你快速搭建可二次编辑的3D应用场景 ChatGPT 已经成为一把可用于多种应用的瑞士军刀,并且有大量的空间将 ChatGPT 集成到数据科学工作流程中。 如果您曾经在真实数据集上训练过机器学习模型,您就会知道数据清理和预处理的步骤对于构建可靠的

    2024年02月12日
    浏览(39)
  • 电脑回收站被清理删除了 怎么恢复回收站的数据?

    电脑回收站可以存储手动删除的数据,但是回收站也是有内存限制的,一旦内存满了之前的数据都会被清空,或者也可以进行手动清空。那么清空回收站能彻底删除文件吗,清空回收站后如何恢复数据,针对这两个问题本文将给出答案。 一、清空回收站能彻底删除文件吗 清空

    2024年02月08日
    浏览(33)
  • 09、Kafka ------ 通过修改保存时间来删除消息(retention.ms 配置)

    Kafka并没有提供直接删除特定主题下消息的方法,只能是强制让消息过期之后,再来删除消息。 因此需要指定如下两个配置: 控制将指定主题下消息的保存时间设为一个很短时间: retention.ms(为特定主题设置) 控制 Kafka 尽快去检查消息是否过期(默认是5分钟检查一次)。

    2024年01月25日
    浏览(35)
  • MySQL利用视图插入修改删除数据

    已有数据库stu,数据表student、course、score: 利用v1插入记录: 插入失败,错误提示: Error Code: 1471. The target table v1 of the INSERT is not insertable-into 利用v2插入记录: 插入成功。 v1和v2相比,v1比v2多了个字段计算年龄的表达式year(now())-year(birth)。 插入失败可能原因1:定义视图的

    2024年02月06日
    浏览(50)
  • Kafka如何彻底删除topic及数据

    我的kafka是CDH安装的默认目录  /opt/cloudera/parcels/KAFKA-4.1.0-1.4.1.0.p0.4 1、停止生产和消费程序。否则topic的offset信息会一直在broker更新。调用kafka delete命令则无法删除该topic。取消自动创建topic,设置 auto.create.topics.enable = false。 2、server.properties 设置 delete.topic.enable=true,否则调用

    2023年04月19日
    浏览(28)
  • 利用SQL语句创建、修改、删除、查看与使用数据库

    【技术路线图】 1、连接Mysql服务:mysql -u root -p 2、创建数据库:create database teacherdb; 注意:数据库的名字一旦创建后不可更改。 3、查看刚刚创建好的数据库:show databses; 4、删除数据库并查看是否删除掉:drop database teacherdb; 5、输出创建数据库时的SQL语句信息:show create dat

    2023年04月21日
    浏览(76)
  • mysql binlog 日志自动清理及手动删除

    1、查看日志文件的文件名以及在那里 show binary logs; 2、手动清除binlog文件 以文件为参考物 purge master logs to \\\'mysql-bin.009\\\';    ‘mysql-bin.009’之前的全部被清除,不包含mysql-bin.009 以时间为参考物 PURGE MASTER LOGS BEFORE DATE_SUB(CURRENT_DATE, INTERVAL 10 DAY); //删除10天前的MySQL binlog日志 删除所

    2024年02月07日
    浏览(36)
  • macbook电脑删除app怎么才能彻底清理?

    macBook是苹果公司推出的一款笔记本电脑,它的操作系统是macOS。在macBook上安装的app可能会占用大量的存储空间,因此,当我们不再需要某个app时,需要将其彻底删除。 macbook删除app ,怎么才能彻底呢?本文将给大家介绍以下三种方法。 一、使用第三方清理工具删除app macboo

    2024年02月07日
    浏览(40)
  • Ubuntu下软件包的清理与删除

    在linux系统中,有时候我们需要删除不需要的软件包,或者删除一个安装出错的软件包,可以使用以下命令操作 说明: Ubuntu是基于 Debian 的Linux系统,而Debian系统的软件是使用apt和dpkg进行管理,dpkg是\\\"Debian Packager\\\"的简写,是一个底层的软件包管理工具,与之相关apt-get工具可以

    2024年02月16日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包