我的编程空间,编程开发者的网络收藏夹
学习永远不晚

kafka删除topic数据

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

kafka删除topic数据

生产环境中,有一个topic的数据量非常大。这些数据不是非常重要,需要定期清理。

要求:默认保持24小时,某些topic 需要保留2小时或者6小时

1.png

主要有3个:

1. 基于时间

2. 基于日志大小

3. 基于日志起始偏移量

 

详情,请参考链接:

https://blog.csdn.net/u013256816/article/details/80418297

 

接下来,主要介绍基于时间的清除!

kafka版本为:  2.11-1.1.0

zk版本为:  3.4.13

 

# 启用删除主题
delete.topic.enable=true
# 检查日志段文件的间隔时间,以确定是否文件属性是否到达删除要求。
log.retention.check.interval.ms=1000

注意:这2行配置必须存在,否则清除策略失效!

log.retention.check.interval.ms 参数的单位是毫秒,这里表示间隔1秒钟

 

全局topic

在 server.properties 文件中配置的是全局策略,针对每一个topic

比如:

log.retention.hours=3
表示保留3个小时

 

单个topic

针对单个topic策略,需要使用脚本kafka-configs.sh

此脚本不需要重启kafka就会生效!

 

首先来查看一下,当前的topic策略,比如test

bin/kafka-configs.sh --zookeeper zookeeper-1.default.svc.cluster.local:2181 --describe --entity-type topics --entity-name test

参数解释:

--describe  详细信息

--entity-type 实体类型

--entity-name 指定topic名

 

输出:

Configs for topic 'test' are

这个表示为策略为空

 

删除topic数据

如果需要删除topic所有数据,使用命令

bin/kafka-topics.sh --delete --topic test --zookeeper zookeeper-1.default.svc.cluster.local:2181

这个命令,请谨慎执行!!!

 

如果想保留主题,只删除主题现有数据(log)。可以通过修改数据保留时间实现

bin/kafka-configs.sh --zookeeper zookeeper-1.default.svc.cluster.local:2181 --entity-type topics --entity-name test --alter --add-config retention.ms=10000

执行输出:

Completed Updating config for entity: topic 'test'.

注意:修改保留时间为10秒钟,并不是10秒钟就马上删掉。kafka是采用轮询的方式,轮询到这个topic时,删除10秒钟前的数据。

时间由server.properties里面的log.retention.check.interval.ms选项为主

 

假设说 log.retention.check.interval.ms 值为1分钟,那么等待70秒,这个topic的数据就会自动被删除!

 

再次查看topic策略

bin/kafka-configs.sh --zookeeper zookeeper-1.default.svc.cluster.local:2181 --describe --entity-type topics --entity-name test

输出:

Configs for topic 'test' are retention.ms=10000

发现目前的删除策略为 retention.ms=10000

 

删除策略

如果需要删除上面的10秒策略,使用以下命令:

bin/kafka-configs.sh --zookeeper zookeeper-1.default.svc.cluster.local:2181 --entity-type topics --entity-name test --alter --delete-config retention.ms

输出:

Completed Updating config for entity: topic 'test'.

再次查看topic策略

bin/kafka-configs.sh --zookeeper zookeeper-1.default.svc.cluster.local:2181 --describe --entity-type topics --entity-name test

输出:

Configs for topic 'test' are

发现策略为空,说明删除成功了!

 

测试思路

1.png

 

说明:

第一步,设置清除策略为保留10秒

第二步,进入生产者模式,输入消息 a

第三步,等待5秒,再次进入生产者模式,输入消息 b

第四部,进入消费者模式,看输出的消息是a还是b

 

判断标准:

在进行第三步时,a这条消息,应该已经被删除了。所以在第15秒进入消费者模式时,应该输出 b,这样的话,策略才是成功的!

 

设置策略

topic 为test的数据保留10秒

bin/kafka-configs.sh --zookeeper zookeeper-1.default.svc.cluster.local:2181 --entity-type topics --entity-name test --alter --add-config retention.ms=10000

 

生产模式

进入生产模式,输入a

bin/kafka-console-producer.sh --broker-list kafka-1.default.svc.cluster.local:9092 --topic test
> a

等待5秒后,再次进入生产模式,输入b

bin/kafka-console-producer.sh --broker-list kafka-1.default.svc.cluster.local:9092 --topic test
> b

消费者模式

等待5秒后,进入 消费者模式

bin/kafka-console-consumer.sh --bootstrap-server kafka-1.default.svc.cluster.local:9092 --topic test --from-beginning

b

如果消费者输出为b,表示策略成功!


备注:

如果生产环境中,正在不断的进行生产和消费,执行kafka-configs.sh 脚本,是否会有影响呢?

答案是不会的,它是动态策略!

 

 

本文参考链接:

https://blog.csdn.net/forrest_ou/article/details/78999983


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

kafka删除topic数据

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

kafka删除topic数据

生产环境中,有一个topic的数据量非常大。这些数据不是非常重要,需要定期清理。要求:默认保持24小时,某些topic 需要保留2小时或者6小时 主要有3个:1. 基于时间2. 基于日志大小3. 基于日志起始偏移量详情,请参考链接:http
2023-01-31

kafka怎么查看topic数据量

你可以使用Kafka自带的命令行工具`kafka-topics.sh`来查看Kafka中特定topic的数据量。以下是使用命令行工具来查询topic数据量的步骤:打开终端,并导航到Kafka的安装目录。使用以下命令查看可用的topic列表
2023-10-26

kafka怎么删除积压数据

要删除 Kafka 中的积压数据,可以按照以下步骤进行操作:停止生产者:停止向 Kafka 主题发送消息的生产者,以防止新的数据写入到 Kafka 中。停止消费者:停止从 Kafka 主题消费消息的消费者,以防止数据被消费。确认消费者消费进
2023-10-27

kafka怎么看topic中堆积的数据量

要查看Kafka中某个topic中堆积的数据量,你可以使用Kafka自带的命令行工具kafka-consumer-groups来获取消费者组的消费情况。首先,找到你想要查看的消费者组的ID。你可以使用以下命令查看当前活跃的消费者组列表:k
2023-10-27

MySQL 删除数据 批量删除(大量)数据

在删除数据的时候根据不同的场景使用不同的方法,比如说删除表中部分数据、删除表的结构、删除所有记录并重置自增ID、批量删除大量数据等,可以使用delete、truncate、drop等语句。 一、方法分类 二、具体方法 类型语句删除全部/部
2023-08-30

Oracle怎么删除数据,Oracle数据删除的三种方式

目录oracle怎么删除数据drop命令truncate命令delete命令关于truncate的小小总结最后Oracle怎么删除数据删除表(记录和结构)的语句delete——truncate—&mda
2023-02-15

阿里云数据库数据删除:如何安全有效地删除数据?

简介在使用阿里云数据库时,有时候我们需要删除一些不再需要的数据。然而,数据删除是一个敏感的操作,如果不小心操作,可能会导致数据丢失或泄露。因此,在进行数据删除之前,我们需要了解一些注意事项和最佳实践。如何安全有效地删除数据1.备份数据在进行数据删除之前,一定要先备份数据。备份数据可以防止误删或意外删除导致的数据丢失。阿
阿里云数据库数据删除:如何安全有效地删除数据?
2024-01-29

laravel如何删除数据

小编给大家分享一下laravel如何删除数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!laravel删除数据的方法:1、根据主键id查询对应的记录,并返回一个
2023-06-26

怎么删除mongodb数据

要删除MongoDB中的数据,可以使用以下方法之一:1. 使用`db.collection.remove()`方法删除特定条件的文档。例如,要删除`myCollection`集合中`name`字段等于`John`的文档,可以执行以下命令:`
2023-08-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录