00:00
好,接下来呢,我们来看一下卡夫卡的一个文件清除策略。也就是说在卡布基金当中的数据,它默认保存多久?哎,其实呢,是保存七天,七天之后自动将数据删除掉,那有哪一个参数来帮我们进行一个控制呢?哎,对应的参数值啊,是这个。啊,那我们来官网看一下,它是不是对应的七天啊。FV。把前面那个删掉啊。那现在的这个参数呢,默认值呢是168小时,那你除以24的话呢,就是七天好。那么再往下看看这个值。叫log ten minutes,你上面是小时,那我如果想保存这个数据,按照分钟进行保存,那怎么办呢?看这句话,据说大家英文水平啊,都非常高超是吧?At the number of minutes keep along啊,这个file before deleted,比如说删除时间,呃,Secondary to,这个这个参数。
01:00
If not that the value is,这个有啊,啥意思啊,比如说如果没有设置这个值的话,那取谁的值啊?没有设置它的话,取这个值。那言外之意就是射了他之后,那是不是这个就没效了啊,就是这个意思啊,也就说白了,它的优先级更高一些。那所对应的参数就是分钟级别。那比这个分钟级别还高一级的,就对应的这个毫秒值哈。呃,往下看。查一下。好,那下面我们来看一下对应的这个参数哈。呃,这句话参数有什么意思呢?The number of minutes啊,也就是说这个毫秒值keep啊,保持数据这个删除这个时间一个设置,说if这个参数没有被设置,那你用谁的呢?哎,用这个分钟级别的也说,言外之意就是它的优先级比分钟级别的还高。
02:01
他设置了,那走他不设置的话,走分钟级别的。就是这个意思啊。行,那我们回过头来看一下啊,这个不同的优先级,那好,那你上面呢,是设置这个超时时间,那我多长时间,我来判断一下你这个数据有没有进行一个超时呢。那这里面默认的检测周期是五分钟。那要注意了哈,要注意了,比如说如果你是啊,这个超期时间是七天的话,那我五分钟检测一次,那没有问题,那你是分钟级别,那你不要小于五分钟,比如说你是十分钟对吧?啊总时间十分钟超时,那五分钟检测一次还好,但是如果你是这个毫秒级的。一个删除那不好意思,那你这个默认这个五分钟啊,这个数就没有意义啊,你是不是得比他这个还要小啊,我举个例子。你这里面最高的优先级如果是100毫秒,我删除数据,那你这个检测周期是不是就得是五毫秒。左右,这样的话是不是要好一些啊,要注意啊。
03:01
行,那这个呢,一般情况下我们不会设置这么短的啊,一般呢,就是按这个天啊,或者按照分钟进行设置就可以了。那么不管怎么样。总有一个数据超期的时间。那一旦超袭之后,我们怎么对这个数据进行处理呢?哎,你有两种策略进行处理,另一个呢就是删除数据,删掉,另一个呢,是采用叫压缩,那我们来详细看一下怎么删除怎么压缩的。这个叫删除,哎,那配置的参数是这个。这是你的策略哈,也就这两个策略呢,你可以任意去选,那默认采用的就是这个删除,来看一下是不是删除啊。啊,这里面默认的这个策略呢,就删除啊,而且给你的外流值啊,有这个呃,压缩和删除啊这么两个。那来详细看吧。这个呢,就是基于时间默认打开,比如说以segment文件中所有记录的最大时间戳作为该文件的时间戳。
04:06
啥意思呢?比如说你这里面你看一个seg大小啊,它是一个G,那总有先进来的日志和后进来的日志,那这个sment整体什么时候超七。它是以最大的时间戳作为文件的超期时间戳,比如说最后进来那个啊,是否超期是这个意思啊。然后那我们就假设一下啊,说如果一个三分当中有一部分数据过期了,一部分数据没过期怎么处理。那比如说你这个删除说零啊,假如说这些数据呢,都已经过期了,这没啥说的,直接干掉就行了,但是就怕这种。他有一半儿数据。确实超过七天了,那但是这边数据呢,没超过,那怎么处理啊,那你深刻体会一下这句话,说这漏中最大的时间戳,我也概念时间戳,比如说最后一条最新的。它超期之后我再把它删掉,那没有超期,那就等着是这个意思啊,那它其实还有一个啊,还有一个删除数列,就是基于大小的,那默认的这个是关闭的。
05:06
基于大小,怎么个基于大小法呢?说超过设置的所有日志的总大小,那么就删除。最早的这个门。哎,这里面对应的参数是这个。这个是什么意思啊,它防止啊,比如说咱们一台服务器,一般情况下呢,假如说生产环境当中是8T的这个硬盘,那好,那我在这里面存储各种S格SS。那万一我存储的SS的这个大小超过了你这个八个T。那我说就重新下了。那你问你这时候怎么办,哎,他是这意思啊,如果你把这个功能打开的话,那他就会把历史的这个数据。删除掉对吧,最早的。那你去找他。那这个呢,在生产环境当中一般不会打开,你想啊,这个要打开了。嗯,有可能你这个硬盘啊,确实比较小,时不时的给你咔咔删除掉几条数据。那这个大家是受不了的啊,所以通常情况下呢,这个是把它关闭掉,那怎么关闭掉呢?啊,其实它默认的就是这个负一,哎,表示的是无穷大,那就把它关闭掉了哈。
06:09
那我们看一下它是不是负一。对吧,哎,这个值呢,就是负一啊,通常情况下呢,不会限制说这个赛格in的大小啊,总大小超过了啊多少多少,那我们就会把这个,呃,最早的这个赛格们呢删掉啊,不会这样去做啊,一般情况下我们的硬盘呢,都会给它比较充足,比较充足。行,那下面呢,还有一种策略呢,叫压缩,那压缩跟我们之前学的snap皮拉着罗啊一不一样呢。那我们来看一下啊,其实呢是不一样的啊,不一样的,比如说我们要想采用压缩的策略的话,只需要将这个参数修改为contact就可以了啊。那他怎么压的呢?这么压的。说对于相同的K的不同的Y流值,它只保留最后一个版本,比如说保留最新的。
07:06
那你看,比如说我们这个数据,这个这是K,这是K。我三个K。那我只保留其中的K4最新的这样一份数据就OK了啊,是这个意思啊,那同样道理,像这个K3。哎,它是最新的,那我就能拿过来,那K4呢,最新的拿回来K5,那K5呢,我跟谁比呢?诶跟后面那比,你发现它是老的,那我就拿最新的,那K2呢,哎,我也拿最新的跟这个比的话。再呢,就是这种压缩并不是我们理解的什么奈皮啊,拉罗这种方式啊。那好,那看一下有个注意事项,说压缩后的这个ET呀,它不是连续的,比如说你看这是。4578中间是不是少个六啊,与此同中没有六。那我如果说我想从upset为六这个位置进行消费出去,那怎么办呢?我拿不到这个六,哎,拿不到六就比它,拿它比它大的,那我就从这个七这辈子开始往后消费就没有任何问题啊,这个一定要注意一下。
08:05
那这种压缩在生产环境当中,什么场景下会进行使用呢?是这样一个场景啊,它适合一些特殊场景,比如说消息的这个key啊,是用户ID。啊,Y6呢是用户的信息,比如说呢,去年呃,他的年龄呢是18,今年呢是19,那历史的这个18类数据是不是就没有意义啊,哎,我就可以把它进行一个覆盖。啊就是这样啊,所以这个呢,压缩呢啊用的比较少,知道就可以了。
我来说两句