kafka 的 Log Compaction 简单使用测试

本文介绍了Kafka的Log Compaction特性,用于根据key存储最新日志数据,实现日志更新和保留。内容包括Log Compaction的原理、保证、日志清理过程、配置选项以及如何在测试环境中配置和验证Log Compaction。
摘要由CSDN通过智能技术生成

最近公司需要对存储在kafka的日志做一些特殊处理,要求对每个设备只存储最后一条日志数据,也就是需要根据key进行日志更新和保留,删除重复的key日志数据,因此想到了kafka的Log Compaction。

通过kafka官网能了解到Log Compaction是什么?能做什么?官网介绍的使用其实很简单,只需进行参数配置即可。但是具体的实施并不那么简单,我在测试中也是出现了很多问题,反复琢磨后才看到效果。

首先简单的来看看Log Compaction到底是什么吧?
Kafka是一个基于日志的流处理平台,一个topic可以有多个分区(partition),分区是复制的基本单元,在单节点上,一个分区的数据文件可以存储在多个磁盘目录中,每个分区的日志文件存储的时候又会分成一个个的segment,默认日志段(segment)的大小是1GB,segment是日志清理的基本单元,当前正在使用的segment是不会被清理的。对于每一个kafka partition的日志,以segment为单位,都会被分为两部分,已清理和未清理的部分。同时,未清理的那部分又分为可以清理的和不可清理的。

日志压缩是一种机制,可以提供细粒度的记录保留,而不是基于粗粒度的基于时间的保留。这个想法是选择性地删除记录,在这里我们有一个最新的更新和相同的主键。这样,日志保证至少在每个键上至少有最后一个状态。

这个保留策略可以设置每个主题,因此一个单个集群可以有一些主题,在这些主题中,保留由大小或时间和其他主题执行,在那里保留由压缩执行。

压缩还允许删除。带有键和空有效负载的消息将被视为从日志中删除。这个删除标记将导致删除任何先前带有该键的消息(与任何带有该键的新消息一样),但是删除标记的特殊之处在于,它们将在一段时间后从日志中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值