00:00
好,那接下来3.43.5节呢,这两个呢,比较简单啊,也不是简单吧,倒是这个技术是很复杂的一个技术,但是对于我们要掌握的内容比较简单,做一个了解就行。做一个了解啊,因为它涉及到一个很深很深的知识点,特别这个零拷贝。零复制啊,或者叫零拷贝技术啊,第一个就是3.4呢,讲的是高效读写,那我们所讲的卡夫卡这个内容啊,将书记落盘的。对吧,那作为消息中间电,那速度不是慢吗。对吧,但是呢,其实卡布卡这个消息队列呢,效率是很高的啊,体现在几点内容,第一个第一个不是说这两个,这两个也是很重要的,第一个就是我们所说的卡布卡呢,它是分布式的,它有分区这个概念在里边。分区这个概念在里边,因为多了分区。那就增加了它的一个什么。读写必心度对吧,那必心度上来了,速度是不是读写速度就能上来,这个没问题吧啊还有一个点这两个下面这两个我们聊的事情呢,是讲的单台卡不卡机器也比其他的单台的一个MQ消息队列效率要高啊,是体现在这刚才我们所讲的它这个集群分布式的对吧,所以呢,它本身效率会很高啊,第二点呢,是如果说有有有的会问他说单台为什么也这么高啊,主要的是有以下两点,主要最主要的有以下两点啊,第一个就是我们所说的,它是采用顺序写字板那种方式。
01:32
顺序写磁盘的,因为这个就跟这两个东西都跟那个什么一个网络编程啊,还有一个跟那个磁盘这块寻址啊,这些东西有关了啊,所以呢,对于我们来说做一个稍微的了解就行了啊,了解了知识点。那因为这样的正常的一个往磁板里边呢,去写东西啊,大致说一下,正常让他磁道有个磁针对吧,去扫描。啊,它还有一个东西叫肾区。这个概念有听过吗?
02:01
扇区对吧,这个呢,就是这个是扇形嘛,啊一块分成了很多块,在磁盘上面分成很块一个块呢,它它上面每个扇区这个每一个点,这个东西叫什么。就这一圈一圈的东西叫什么叫磁道对吧?啊,这个都属于物理层的一些点呢,所以说呢,大家做一个了解啊,就是分成很多扇区,一般的正常来说啊,它是随机写,随机写的是什么样的呢?就假如说第一次在这个扇区去写,然后第二次滚八个对吧,然后跑到这个扇区里边写一个东西,什么又滚八个,又跑到这个产区写啊一般的选址它在磁盘当中是这样分布的,就你这个数据写下去是这个样子的,那顺序写磁盘就相当于它开辟了一个完整的空间。让你连着去写,不用那个省去了整个的一个什么寻址时间了,能懂这意思。啊,省去了审指时间啊,这是我们说的循这个顺序顺序写磁盘,而且顺序层次排能到这个这么多随机,你看这个效率比。差距蛮大的吧,啊差距蛮大的,他采用的是这个技术啊,然后接下来因为这个东西跟物理层有关了,如果说感兴趣的,或者说之前学过那个什么微机原理啊等等这些东西可以去做一个了解,其他的如果说你对这个本身硬件的东西不感兴趣,嗯,你就知道说顺序写磁盘这个点就行了,能听懂啊,你知道它里面快有一个因素叫顺序显示来啊,第二个是零拷贝技术,或者叫零复制,这个都可以啊,都可以,那这个属于网络编程的一个点啊,那什么意思呢?是这样的,我们之前所想象的,假如说你用一个IO流。
03:36
IO流读一个数据啊,把A文件这样吧,把A目录底下有个1.tsd,你想放到B目录下。叫改个名字叫2.tc,是不是你要用IO流读到你代码里边给他写出去。对吧,你想的是不是你代码是直接读这个文件的。就是呃,没学过网络编程,或者说没有那个V原理的一个底层的一些知识点的人,我们应该是会这样理解吧,就a.TC直接说我当年这个代码连的就是你这个文件,然后把你文件里的内容给它读出来吧,是这样理解的吧,啊,但实际上不是的,因为这个涉及到很多的一个东西啊,操作系统系统层的一个东西啊,那这块呢,它其实中间还有一个什么呢?
04:23
OS操作系统,其实他先是将数据呢,这个我们所说的这个呢。就是操作系统。啊,操作系统上,它是先将你的文件读到这个操作系统,然后叫user space。用户空间就是举个例子,就是你的application,就是你的代码。代码,然后接下来呢,他通过你的代码又写到什么。操作系统上,然后由操作系统来跟这个打交道的,注意你这个代码是没办法直接操作那个文件的。你的代码还要操作文件呢,都是底层的东西,都是C啊系统系统的一个内容,那C调用的,而这一块呢,它就比较慢,就因为你中间都跨了一个这个层。
05:05
啊,画下这层,那零拷贝或者零复制技术就是什么意思呢?这个不要了。直接交给操作系统来管理。你发送一个指令,让他读到这个操作系统里边,然后就直接有操作系统写下去啊,这个叫零拷贝技术,就是你能发现到明显中间传输过程少了什么。少了少了一大串吧,啊,这个也是它效率比较高的一个点啊,这个东西呢,呃,要是真说的话,就很复杂的一个东西啊,很复杂东西,但是你要知道就是说这块呢,做一个了解啊,高效读写技术,高效的一个读写一个问题三个方面,有一个方面没列在这上面。对吧,就是我们所说的分布式。分布式,这是一个很重要的点,就是它分布式,它有分区的一个概念在里边,它可以并发读写。对吧,啊,这个呢,就是它的一个高效的一个重要因素,但是有时候人家会说,那我单台机器卡夫卡,它这个效率也很高啊,那你能聊这个分布式吗。
06:04
不能吧啊,因为他说了单台机械,那单台机器你就告诉他诶,它里面用到了一个顺序显示盘,同时还用到一个零拷贝的一个技术啊,零拷贝的技术,接下来他不会去往山上奔啊,其实在工作当中正常的。做it开发的,还有很多人对这款东西也不是特别了解啊,不是特别累,你要想想了解这块的东西的话,你就可以去就搜零拷贝或者叫零复制,你就看,随便找几篇帖子去看一看,心里边有个印象就够了啊是这个意思,好,那接下来呢,还有一个点,这个东西呢,也做一个了解的东西啊,了解东西那是这个。我们之前看到一个controlr了,对吧?啊看到一个controller,这个呢,有一个博克会被选举,他呢负责管理集群的整个的一个工作啊,什么分区分配啊,Leader的选举啊,都是由他主导的啊,由他主导的,那也就是说派一个干活的人出来啊,至于他那个选举啊,很简单,就是我们刚才所说的抢那个资源。
07:00
抢那个资源啊,谁先起那这样。呃,我们这边是不是看到102,我们做这个事啊,现在我们进到这个里边,诶在这,嗯,随便吧,现在里边还是102吧。并ZK client.sh进到客户端里边LS一下这个AS1项根目录对吧。这里面controller,当时我们get一下这个controller对吧。如个零,那接下来他这个选举规则比较简单,我可以干什么呀?对吧。生产环境当中,那这种情况就是。的卡不卡?挂掉了对吧,啊挂掉了好,那这个地方我们再来看一下。抢的,你们在底下做测试的时候,有可能是二。这有可能他们俩在抢的,他们俩呢,就是这样的啊,这有一个相当于有个座位对吧,有个椅子,谁先来谁坐。
08:03
但那个人挂掉了,对吧,有有两个人呢,在这一直盯着这个椅子,就过一段时间看一下这个椅子空没空,看一下这个椅子没空,正好102挂的时候,103看到了吧,103就坐上去了,能懂这意思啊,就类似于这样的,他这种的一个管理方,因为无论选谁当抗了无所谓,因为所有的信息大家是共享的,每一个里边呢,人共享的,只不过说你如果说没有一个老大,你ZK里边有东西要写的,那谁写呢。是不是很混乱?这不三个人都来写,那不就乱了吗?啊,交给一个人来管理这个事情啊,但是我现在把101骑起来有用吗?说102再当老大吗?没用了吧,啊,已经椅子上坐了人了,对吧,除非等什么,等他挂了对吧?啊,等他挂了是这意思啊,我把起。啊,稍微有点啊,你再骑起来。哎,我忘了加那个杠DEMO啊,那就这样吧,没加杠DEMO,它就是一个阻塞的,那这个窗口就不能用了,我提到前面去了啊,提到前面去啊这意思啊,这个呢,就帮助管理这个过程的,然后说了这个选举过程呢,很简单。
09:10
就在里边啊,这个是leader的一个选举过程,Leader的选举过程呢,要看什么啊?三它本身刚才我们所说的那个抢资源选举过程是选谁啊。选control啊,选control了啊,这个要注意一下,选control这个是选leader leader的重要的看什么。RR啊啊,他还要去更新这个地方,你是不是看到在ZK里边这样,我听到你们在讨论说这里面的命令都忘了。都不知道我写的那个ZK那个东西什么东西了。对吧,这个地方还要通知这个什么。IR啊,对吧,这里边呢,也有ISR的一个内容在里边,所以我们今天说了,那你频繁的进出是不是一直要操作这个ZK啊,啊也很麻烦啊,也很麻烦,他也参与了这个过程,就是OK吧啊除了这个,这个我们只是列举出来相对来说比较重要的一些点嘛,像control的这个选举啊,B的选举啊,分区分配的一个策略啊等等这些东西,对吧?还有你看这里边除了这个之外,是不是还有很多的这个内容啊,对吧,还有很多内容他都帮他管理着这些原数据信息啊,原类意思啊。
我来说两句