00:00
Hello,同学们好,那接下来我们来了解一下这个静态文件的啊,这种同步方案,呃,静态文件同步呢,有很多种方式,呃,也有很多的工具,现在比较成熟比较成型的呢,给大家介绍一个工具叫RSYNC。这也是我们之前使用过的工具,呃,已经非常稳定健全了,不管现在有很,不管现在发展出来了更多这种这个新的同步工具,呃,我们用一些,呃这种运维上这些工具的时候啊,我们主要还是追求的安全稳定啊,它尽量少出问题,而不是追求一些新版本。呃,再有就是这种同步的这个操作啊,它其实没有什么太多额外的功能,只是希望我们把呃,我们的生成出来这些文件的同步,或者分发到不同的服务器上,然后呢,不需要我们去额外的做一些开发。啊,这个需求吧,其实说简单的也很简单啊,说复杂呢,这里边儿有很多需要注意的细节,或者需要时间的细节,所以特别不适不适合我们。
01:02
自己去开发这个过程,你像我们生成完这个文件对吧,现在是比如说这是我们的这个,呃。语文文件地址在这儿呢,咱们就不提这个客户端服务端了啊,这个目标地址和语文地址啊,这样比较好区分。云服务器。这个云服务器的目的是干嘛呢?它去生成呃,静态静态文件。那么静态文件生成出来之后,诶,OK,这里边比如说我们这有一个index h名。那么我们期望把它推送到我的集群当中。也是目标服务器。比如现在有三个目标服务器。为什么说这事儿说大不大,说小不小呢?因为这里面涉及了很多的文件管理问题。
02:02
那比如说我生成出来的文件,我把它给推送过去,这事倒还好说,对吧。但如果生成出来的文件,我在管理系统当中把这个文件给删了,也是我的云服务器地址,呃,云服务器里这个目录里我删了一个文件,那你是不是也得把目标服务器里边这个文件给它删除掉,对吧?那如果目标服务器的目录下额外还有一些多余的文件,那我从这个云服务器的这个这套应用系统里边,想管理这个目标服务器里的这个目录,或者监控这个目录。啊,这就变得比较困难了,那这会儿就变成了客户端服务器端的这种程序了,我们在开发的时候呢,需要投入的成本可能就比较大了啊,再有就是文件,如果要只是单纯的内容有一些改动的话。啊,我就可以这个把它这个,呃,单独的一个文件啊,比如说我这有一列表有有几有几十几万个文件啊,改了一个文件里边的内容啊,它在同步的时候,如果我们自己写。
03:01
应该怎么写,它是比较复杂的,对吧,我需要检查一下两边的这个文件,呃,大小是否一致,并且它的最后修改日期是否一致,如果不一致呢,然后我再去。把其中的一个文件里边的内容全部都读出来,再覆盖掉目标的机器,那如果目标机器里边它这套系统,呃,把这个当前的文件给锁死了,你写不进去的话,那你这边也无能为力,所以在这这个环节里边开发呢,我们可以借助一些第三方的工具。然后节省掉我们这个开发的工作啊,这是呃,同步文件这步操作啊。呃,生成文件这是一套系统,然后同步文件是另一套系统,那么生成文件这套系统呢,我们就用Java或者其他语言去开发就可以了,生成出来的文件呢,我们另用另外一个工具,就是这个RSYNC。去同步它到目标服务器,那么想要实现这个RCYNC去同步的话,呃,那么可以这这个它需要两端啊都去装这个软件,Rcc这个软件呢,不大很简单,它很像是这个SCP这个命令,只是这个命令呢,呃,或者是这个软件没有在我们的操作系统里边自带。
04:16
像SAP我们就可以通过SC命令啊,找到目标地址,并且完成授权认证,把我们一个文件直接给他推过去,但RSOC它的功能更强大,它可以监控我们当前这个目录下的所有的文件的变动啊,如果要是其中只有一个文件,呃,发生了变化,它只推一个文件过去啊,它可以有远程比对的过程,并且啊它在传输的时候。当我们完成了压缩的工作。呃,传这些文件啊,你像一些文本文件在压缩的时候,呃,它的这个压缩比会比较高。嗯。尤其是在同步数据量比较大的时候啊,就这会这个把数据压缩一下,这个就尤为重要了啊。
05:00
这是呃,我们这个基本的工作原理啊。呃,RYNC呢,主要是在这里边起到的作用是推送啊,推送复制以及比对,在这里边额外还有另外一个工具,呃,这个工具呢叫I notify。这个I notify呢,它主要起到的作用就是监测目录啊,监测文件有没有什么变化,它是监测变化的。监控目录里边的文件有没有变化,有没有修改删除啊等等这些操作,一旦有的话呢,他可以去调取这个SYNC,让他去帮我们去推送这个,呃,这个这个这个文件到目标的地址。这是两个工具来配合使用的。呃,基本的原理呢,比较简单,那么接下来我们把它配起来,带着大家来看看它实际的这个效果啊。
我来说两句