00:00
好,各位同学。大家好,接下来我们给大家介绍AF持久化的工作流程和缓冲区的三种写回策略,通过前面的介绍我们已经明白了。持久化呢。还有一种技术叫AF。它会把主人。你所敲过的每一个写操作命令,我给你用A。文件在后台记录下来,当重启的时候,我是不是就可以把主人你之前敲过的每一个写操作命令,我都给你重新再敲回来一遍,再写一次,这样是不是达到了数据的恢复?变相的是不是也保证了我们的持久化?OK,好,那么接下来他的工作流程是怎么样呢?来吧,大概有这么五步,我们挨个挨个过,第一个这个是client端,那么。我们所敲打的写操作命令或者后续。我们有。Spring整合register以后,通过Java程序、微服务程序发送我们的写命令到,那么这样的话会有多个源头及源源不断的请求命令,再次强调人家只关心写操作命令,查询命令,不要,说白了就是增删改查,前三个增删改我记录那个查询命令,不记第二个,这些命令到达了我们的red server以后,它是不是马上就从服务器写到AF文件里面保存进磁盘呢?不是这样的,它首先会有一个内部的机制叫alf的缓存区,你的命令是先到缓存区里面,它这块相当于在服务器和最终的磁盘上的AF文件,有一个缓冲,有个B法,那么到一定规模和一定程度了,按照我们后面所设定的写回策略,再把缓存区中的写操作命令写进磁盘,那么这样从一定程度上可以避免频繁的磁盘IO操作。第三步,所谓的。
01:58
写回策略。就是指我们会按照。
02:01
哪一种策略把缓冲区的命令写进AF文件里面,这个策略我们在下一讲会给大家呢进行介绍,先暂时混个耳熟了解一下即可,先拿下整个流程,那么第四个大家都清楚,我不停的这么记录着这个写操作命令,比如说第一行set k1V1,第二行set k2 V2,第三行set k3V3,那么慢慢的主人你所编写的写操作命令越来越多,我这个A文件记录的是不是也越来越多,它会越来越大,慢慢的就开始膨胀了,那么文件一大是不是就不好管理了,所以。AF文件有一种自我优化机制,它会把有点类似于我们数据上讲的合并同类项,会根据业务规则进行命令的合并,这个是个重点。我们介绍完A的。19化机制以后,再给大家后续下半场介绍AF的重写机制,那么这个时候你就先听一嘴,当AF文件记录的写操作越来越多的时候,它内部会有一种优化机制,俗称AF重写,说白了就一句话,将越来越大,越来越膨胀的AF文件进行减肥瘦身计划,你达到A文件压缩的目的,OK,这样不停的回血,最终我们的第五步假设red重启以后,将会把重启的时候将会把A文件。
03:26
重新加载回服务器,就把里面所记录记录的所有写操作命令再执行一次,达到数据的持久化和数据的恢复,这个就是它的整个工作流程,共计五步,那么下面在这儿请看。我们这儿是不是写过说提过一种叫写回策略,这个又是什么东东呢?来,首先。里面的LF,它有三种协会策略,分别叫always every和no,意思永远每隔一秒,No是不是拒绝的意思啊,不再重写,不再写入,那么哪里来的呢,来。
04:09
官网里面的,或者说配置文件里面的都给大家呢,说了一个清晰的听好重点第一句话,默认的协会策略是every second,每一秒来吧,我们先检验一下啊。ready.can那么在这我们找一下end only,那么来。再来,再来。嗯,是不是跳过了啊,我们往上翻查一下啊。手太快,跳过了,在这儿,同学们请看。默认的就是每一秒。这已经告诉你了,追加的同步写回策略是every好,那么这三种分别代表什么意思呢?来吧,挨个带大家过。第一个叫同步回写,就是每个写命令执行完了以后,立刻同步的将日志写回磁盘,可不可以,完全可以,那么这样比较猛,几乎就是跟你同步,你写一个我记一个,你写一个我记一个,这样好不好,非常好,每一个命令都不会丢失,但是这样是不是频繁的磁盘IO?
05:25
我命令不丢失,但是IO频繁增加也会降低我们服务器的性能。那么下面再来看,这是同步写回,我们先看。最下面这个干嘛,操作系统控制的协会,每个写命令执行完了以后,只是先把日志写到A文件的什么内存缓冲区,刚才是不是说过了,就是这个东东。好,然后干什么,由操作系统来决定何时将缓冲区的内容写回进磁盘,那么这个呢,就是有点佛系躺平,说白了那就是我不是马上记录。
06:06
这样的好处是什么?跟这个是相反的,他们两个是从一个极端走到另外一个极端,换句话说,我现在这样的话,不会马上记什么时候记,看操作系统心情,那么这样的话呢,磁盘IO倒是肯定不频繁了,但是100%是不是会丢数据,所以万事中庸,我们呢?最频繁的和最躺平的都不选中间路线,中间路线这叫什么每秒写回,就是每个写命令执行完了以后,先把日志写到A户文件的缓冲区,一秒钟以后,每隔一秒以后再把缓冲区中的内容写入磁盘,所以这也是red默认的A写入策略。听懂,那么在这儿如果面试题会问你谈一下ready的A是什么,它的协会策略有几种,默认用的是哪一种,说一下为什么默认用这个,三个有什么区别,那么大致你要能够讲的出来。所以为了大家面试上。
07:11
答得住,杨哥给大家做了一个小总结,所以配置线是这三个,对于OS而言,写回机制同步写回,对于这个呢,每秒写回,这个呢,操作系统控制写回,它的优缺点都给大家整理了一张表,OK,好,那么这个就是我们ready当中的AF整体的工作流程和三种写回策略的介绍。那么接下来理论完毕,咱们进入案例实操,代码说话。
我来说两句