00:00
好,我们刚才讲那个芙蓉跟卡巴对接呢,重要的问题就在于那个我们所提到的,呃,生产环境当中这两个东西到底怎么用,对吧?啊,因为生长环境当中涉及到两个对接,而不是单纯的去用一下这个内容啊,因为这个内容其实卡普卡辛。你其他的think会用官方文档放在那,你卡不卡think当一个普通的S是不是也一样用啊,对吧?啊,只不过说它情况比较特殊一点,你得知道它为什么你from卡不卡这两个东西都是采集数据的,为什么还要把它们俩对接到一块,对吧?重点的是这个内容啊,好,那之后呢,是我们所看到的这个卡不卡一个面试题,面试题呢,中后面有答案,就参考答案,你可以自己看一下,我们快速过一下,这里边也就是上课当中所讲的一个点,当然还有一些没讲的,我们来看一下啊,第一个他说考法当中is啊代表什么。对吧,As知道OS,你看一下这个叫out,这个叫in,这个叫out,那是什么东西,那这个AR呢,这个不是那个AR啊。不是你们喜欢的那个呀。
01:01
好,还有个V2吗?A2吗?不知道不知道不知道,算了,这两个东西重要的是O加在一块等于这个A对吧?这是所有的副本吗?啊所的没这意思啊,了解一下,呃,更多的提到是S,其实这两个东西是很少提,但是呢,有时候面试过程当中,他就突然冒出这个名词,了解一下对吧?不好意思,这个不难,好第二个s w Leo分别代表什么?这个是高水位,指的是消费者可见的最大的,对吧?Leo呢?是每一个分区里边多个副本都有一个自己最大的那个值,对吧?啊是这意思啊,好卡不卡是怎样体现消息顺序的。区内有序吧,啊,区内有序啊,然后你说对这个东西是否了解,我不了解啊,其实了,不了解就是他干什么事的对吧,干什么事的也不知道是吧,那不知道我们就过了啊,分节器虚的发气拦截器啊,不要闹啊,不知道执行顺序呢,拦截器序列化在分区吧,在分区这个啊然后说。
02:28
生产的整体结构是什么样子?几个线程分别是什么?两个线程,这个整体结构大概的就是我们给大家画的那个PPT对吧?啊里面有一个慢线程,慢线程呢,经过我们所说的啊取数据啊,连截器,序列化器,分接器,然后将我们数据写到了共享区,对吧,叫recorder occul对吧,然后有一个新的现场,这里面取数据发给我们什么。具体数据注意这块,这块已经数据分好区了,一个批次一个批次对吧,分好区了,然后呢,你取了直接就发送就完了啊是这个啊一个结构啊,接下来第六个他说消费者当中,消费者个数,消费者组。
03:10
消费者个数超过topic这个分析数,那么就会有消费者消费到数据,这句话没毛病吧,啊没毛病,而且呢,生产环境当中,你不能要这种事发生了浪费资源对吧?啊浪费资源,因为你开了一个空的GM,好,接下来是这个问题。消费者提交消费位移是提交的那个当前的是最新的消息的,还是奥赛加一?还记得当时C吗?ZK当中最开始的时候存着两个零,还有。那如果说他存的是最新的消息,我们就反对,假如说存的最新消息,那应该是不存。
04:06
因为他没有数据,是不是我们一个新的主题,我去消费的时候,它是不是两个分区存了两个零啊。那这两个零代表着他下一次消费的数据了。是不是代表了下一次消费的数据啊,因为里面没有数据嘛。当我们往里面发送一条数据之后,它是不是变成了一啊有影响,对这个事儿,前天我们做的测试。看来得有必要重新测一下,因为有的公司问你这个问题,对吧?啊,其实是什么加一,要是加一啊,我们可以测一下这个东西,但是。20分钟,手速快一点吧。看有多快,怎么看计时逃,然后对吧。尴尬。OK吧,好多吧。
05:00
102冒号2181,然后杠杠好这个。这个我来个bbb对吧?BB没有吧,有人记得吗?哎,少写了一堆东西啊,你看还是有时候还不能图快对吧。吧。两个分区两个副本可以吧,啊其实这个呢无所谓,创建了BB好,接下来呢,我们派一个什么消费者去消费它。看刚刚好多吧,八号幺刚刚。然后bbb走。打开我们的什么吧。BZK。LS下跟consumer。底下有人吗?这个吧,控制台的是他吧,临时的嘛,其他的控制台都没了,对吧?啊这个里边呢,有一个。
06:05
诶还没存,因为他没有开始消费啊,那我们出发一个呃,B。卡不卡叫康杠杠。List。刚啊哈多吧号多少九吧,刚刚他个走。好,我哈第一个。还没有吗?L一下。啊,这样我重新进一下,因为这里边客户端刷新啊,它总是很慢。我们把这个拿一下。Table office有了吧,啊,就是拿这个office啊,然后进来这个里边有个bbb啊,只有这一个主题,因为只消费的这个主题,这个呢有零号分区对吧,零号分区就不能用什么了。
07:03
L了用用get这个里面呢,是一个一这个里边呢。是一个零。啊是一个零,好,而且呢,结合我们之前所讲的,那就是这个数据是不是发到零号分区了,对吧,发到零号分区了,那我们之前看到了是从几开始分的。从零开始存的吧,就是卡不卡集群里面的阿,我们上午测了通过回调函数是不是从零开始开始开始的呀,但是他这个地方是不是你消费者保存的,这个保存的是一。说明什么问题啊,加一吧啊加一其实前天的时候大家都看到过这个点了啊,不是忘了,然后接下来看一下有哪些情况会造成消息漏消费和重复消费,注意它指的是漏消费和重复消费,不是数据丢失和。数据重复这不一样,这指的是消费过程,你不要回答AC的问题啊,AC是生产力电脑,虽然AC这个也会引发什么数据丢失和数据重复问题吧,但是这个时候他不是问的AC,你要记住是生产问题啊,什么时候会重复呢?对先。
08:18
处理数据再提交off有可能会什么重复对吧,因为你处理完了off没有提交,下一次重新来的时候又来了一遍吧,啊这一次那什么时候漏呢反的吧,对吧?啊先提交后处理,那是可能会丢什么丢数据啊两种情况啊两种情况啊,那接下来这个问题啊,这个问题应该是某一家公司问到比较少,其实大哥你通过这个命令创建删除这个topic之后,卡不卡执行了什么逻辑?啊,做了哪些事儿,实际上啊做哪些事,这个问题当时确实不好答啊,因为不知道他问这个题到底想问什么东西。对吧,因为你光问,因为你现在看到下面的下面的答案,就知道他大概在做什么事,对吧?啊,那其实你不知道这个做什么事,你不知道他问这个问题的什么意义,他说删除创建一个topic表之后,他说卡不卡之后会执行什么逻辑。
09:16
对吧?啊,当时你如果说遇到这种问题的时候,你要跟他去沟通,说具体问哪一块,就类似于假如说有个人问你哈多的运行机制这个题怎么答啊。他问的问题是哈多的运行机制,这个问题怎么答呀,对吧,到底是HDIY读写还是雅提交,还是什么东西,你要问清楚了,对吧?因为都涉及到体制,所以这种问题呢问的不清楚,那我们稍微了解一下,他其实问的就是做了哪些事。啊,ZK当中创建一个节点topic,新的topic节点,对吧,假如说你first,那就来了一个first啊,这个也肯定要创建的,然后触发controltr了一个监定程序,因为controltr了对于整个集群的一个管理,它也要放到原数据里面,对吧?啊,那更新这个原数据啊,从VK当中更新的啊这意思啊,就是做了这个事,好接下来这两个问题。
10:07
Topic能不能增,能不能减,可增吧,可增不可减对吧?啊这些东西,而且为什么是不是我们这天聊过了,增的话是不是新的分区,我们看到在那个整个的里边,它通过是获取到当前可用分区吧,是不是可以投入到新的生产环境当中去使用的,啊是可以的,那不可以解释,这个数据你没办法处理的,已经存在的这个数据没办法处理好,接下来有没有内部的topic表。有吧?009之后有一个向划线,向划线consumeres对吧,这个内容呢,作用是什么。给普通的一个消费者来存奥用的吧,啊用的啊分区分配的一个概念是什么。啊,其实也就问你分区分配它有策略啊这些东西对吧?啊两种对吧,Range Robin对吧,两种分别应用场景,Range呢,是所有场景都可使用的,因为它是针对于主题来说的,它按主题进行分配,分配给订阅了该主题的人,按照范围进行划分,对吧?那re Robin内容呢?
11:16
它是面向组来处理的,面向组来处理的,他把你当前这个组呢,搁一块,哎,搁一块进行一个轮群的分配,所以呢这种呢有好处,就是我们所说的多个消费者之间差异。最大到一吧,啊,最大到一,因为轮巡,但是呢,它前提条件比较啊,你必须得一样,对吧,必须得一样。然后接下来他说简述卡法卡的一个日志目录结构,这个东西呢,实际上就问的是那个什么index和点lo啊,其实分子他们俩啊,然后你顺便把那个什么,它如何找到具体的数据位置这个逻辑去说一下,对吧?第一步呢,通过二分查找法定位到一个文件,然后接下来是扫描这个inex文件,找到这个数据在log这个里边具体的什么。
12:07
啊,具体的量这个意思,那下面题那就这。如何找到最应的位置对吧?啊,如何找到对应的位置,就是我们刚才所说的一个点了,对吧?通过二分查找法啊,定位到这个神经的数据在每个index文件里面,然后通过index文件去扫描找到什么。具体的log文件里面配音量对吧?啊是这样的一个查找的一个顺序下来,还有一个就是说卡不卡control的一个作用。这个作用呢,其实这个问题问的相对比较少,比较少一点,呃,它其实呢,跟CK进行一个打交道,这种原数据啊,整个的都要经过他来进行管理的啊,其实他就相当于是卡布塔基当中临时选了一个老大,然后这个老大呢是干活的。
13:01
对吧,啊,这个老大干活的啊,倒不是说他有什么监控啊等等这些能力,他主要是干活的,就是说原数据的更新啊,什么东西都由他来获取到,获取到之后他还要通知到什么。其他的人吧,因为三台节点都要保持一致啊,都要保持一致是这个意思,好之后呢,卡哪些地方需要选举,这些地方选举策略有哪些,我们现在瓦知道有哪些地方需要选择。一个两个,一个是这个control对吧,还有一个是这个leader对吧。呃,康中乐要选举啊,他的选举策略比较简单,就是抢那个资源,对,就是抢的资源啊,就是选举抢资源也是一种选举方式嘛。选举有民主的选举方式,也可以有打架的这种方式,对吧?谁狠你像那个狮子的手里不就靠打架的方式吗?那你你不能说人家靠打架的方式,不是选举,非得和平的投票才能选举啊,对吧?啊是这意思啊,就是这也是一种选举策略啊,也是一种选举策略啊,是这个意思。
14:04
人家两块地方呢,他呢,就是我们所说的真的资源,他呢。是通过isr吧,那其实聊这块的选举就是选isr这个问题了,两个对吧,老版本当中一个看同步时间,一个看同步的条数对吧?啊,数量是这个意思,高版本当中0.9之后对吧?啊,0.9之后把那个条数干掉了对吧?官方文档都写的很清楚啊好,接下来是失效副本是指什么意思,有什么应对策略?这个问题问的也挺奇怪的。失效副本。实效副本其实讲的是那个什么挂掉了对吧?啊挂掉了是不是有SR啊,整个还有多个副本嘛,啊讲的这个是应对策略,就副本嘛,SR重新选取leader的啊应对策略其实有的,注意这些题目我们并不是我们自己出的啊,这个是人家面试或者笔试过程当中,原题我们都过来的啊,就给大家看一看,就是你面试当中很有可能遇到这种问题,就是连问题根本就搞不清楚他的为什么吧,是吧,有的问题还好吧,什么可不可以参加,可不可以减少这种。
15:09
对吧,啊有的问题呢,就很奇怪啊,大家都有,就是有的他有的人呢,他没做过这个事,因为你去到公司之后,很有可能如果说你去了第一个人的话。他是后台人,他就稍微了解一下这个东西,然后从网上随便找了一些题目,然后他自己根本就搞不清楚这个东西,他就很难把这个问题问明白,能听懂吗?对吧,有这种人啊,很正常。还有最后这个地方说卡不卡的哪些设计让它有如此高的一个性能,首先我们说的它是分布式的,对吧?分布式如果除了这个之外呢,如果单个的呢。顺序写磁盘,还有一个是零拷贝吧,啊零拷贝这个意思,零考或者考。
16:00
对考有去查一下这个内容没有查是吗?可以去了解下,可以去了解下,这个是我们关于那个面试过程中问的问题都列出来了啊,啊列出来了,但是我们当时记得给大家发了一个这个吧,啊高频我们看一下,这个高频里面有些题目不一样啊,有些题目不一样,来看一下啊。这个是无论他关于卡不卡,问什么东西呢,我们都把它放在这个地方,就是这个地方大家都看一看这个题目对吧?啊都看一看,那接下来看一下这这个地方呢,有些题目第一个加数。价格问题你要聊清楚对吧?啊,这个问题倒还好,第二个压测,呃,我们的项目当中呢,会给大家扩展出来,卡不卡呢,官方自带的有压测的一个脚本,可以查看哪些地方出的瓶颈好,还有其实这个地方为什么现在没有讲这些东西啊来。这一套。这个跟什么有关系啊,像生态环境吧,啊,所以呢,没必要在这去讲,因为我们前面是学它的一个知识点吧,后期应用的时候,因为看机器数量啊,日这保存时间,硬盘大小监控啊,分区数啊,副本数啊等等这些设定是不是跟项目相关啊,就是跟你工作当中有关系吧,啊,实际的工作有关的啊,是这个意思,后面呢,而且呢,到最后啊,我们会有一套集群的配置信息给到大家。
17:26
啊,就整个的服务都没有,就是你们,你因为你们模拟说你们从小公司出来的吧,人家会问你,你这个开发有多少人啊,对吧,你有多少个机器啊,对吧,每个机器。到底是什么样的配置啊,对吧?啊,都会问一台机器开了三台虚拟机是吧,出门左转是吧?好这个是具体的一个跟项目相关的一个内容啊,我们后面再聊,你要提前看一看也可以,提前看一看也可以,好之后是这个问题来看一下啊,我们就直接不用点下面了,就直接看这。
18:06
丢不丢数据问题可能会丢吧啊,可能会丢的啊,还有IR副本同步队列这个东西到底是什么,其实刚才那个问题当中也有吧啊问SR是什么东西,分区分别策略是不是也看到了对吧?但这些呢是属于高频的,我们把那个地方那个什么二道题是大概有的公司一。被问到一两次了,我们也放在里边,大家都见一见这个地方呢,就浓缩一些高频的,对吧,像这个呢,问的也挺多的,因为他要看你到底有没有干过这个活,就问这种问题了。一问不知道那就死了对吧,还有HR会问你,他说你公司是在那个什么什么什么多少多少楼对吗。不是,他说不对呀,我前两天刚去过。还是炸你啊,其实去没去过谁知道呢,对吧,因为你写了地址,你写了那个谁家公司地址,他就会炸你啊,这都很正常,呃,别基础问题都过了,死在这个问题上面啊,而且呢,每个班死的都挺多,就前期要准备好了,你要背熟。
19:12
对,你要背熟之后,还有这个数据量的一个计算,数据量计算这个点呢,也是一样的,来看一下,这就给你们的数据。这这个东西都要记住的,他会问你,你每天多少数据啊,高峰期是多少条数据啊,低谷大概多少条啊,平均大概多少条啊等等这些东西能听懂吗?啊,实际的数据量问题,因为你天天在用这个东西,天天在计算,你不可能不知道每天的数据量。对吧啊,你天天要去要要要有的好之后呢,卡不卡挂掉卡挂掉的问题,假如说卡不挂掉了,第一个他是不是有副本啊,对吧,要多个副本都挂掉了,所有的卡卡机群天灾人祸对吧?机房爆机房爆炸了,卡卡卡卡机群全挂掉了,对吧?那如果说你芙蓉不是在一个机房的话,是还有啊,但是对于小公司来说,如果机方爆炸,那就没办法,因为所有的东西都在一块,对这个一般的不会吧啊,一般的不会啊,就是呃,很多大公司防止这种事情,他有什么。
20:14
机房直接备份多个机房对吧,多个机房他会把那些机房建在什么地方,那个对电费低的地方,或者说凉快的地方,因为一个机房里边最贵的是电费。啊,长期应用的话,当然你说你买了一个花一个钱建了一个一一公顷的一个机房,最后开了一天说电费贵,这也不是,那肯定是机器贵吧,但是长期发展你机器你不会天天去买吧,每天都用新机器,这么贵了,长期发展电费很重要啊,电费也贵。啊,所以呢,放在凉快地方或者电费便宜的地方啊,这个意思啊,然后还有一个问题,就是说这个日志有记录,就是说第一个短期没事,它本身有副本嘛,本身卡普卡有副本,要挂一两台没问题,好假如说卡普卡真不信,卡普卡机群全部挂着。
21:14
对吧,可把全部关掉了,那你数据呢,从F来的弗你配置的,假如说是衰小成的。你是不是在里边可以做缓存啊,就是think出不去嘛,是不是暂存在那个file里边啊,啊,假如很不信这个也挂掉。最早的日志还有吧,啊,日志你一天一天的,不是一天滚动一个日志,一天滚动一个日志嘛,那个是后台服务器吧,啊不是大数据集群啊,大家进化了跟那个地方没关系,对吧?啊所以呢,日志还有记录,所以短期挂掉应该是没有事的啊卡夫卡呢,它本身也支持这个挂的一个问题,好接下来是这个问题,他说卡夫卡如果说消息出现积压。消息积压是什么意思啊?消费来不及吧,啊,消费慢其实就是消费能力不足对吧?啊,能力不足,那加机器啊,加机器也不一定啊,加什么加分区,再加什么消费,而且让他们俩相等吗?二者缺一不可。
22:15
你三个分区十个消费者有用吗?没有满七个不在空账好对吧,还浪费资源是吧?啊浪费资源还有一个是这个。下游消息处理不及时。处理好每一次呢拉取的数量,对吧?啊,可以提高每一次拉取的一个数量啊,拉取的数量,我记得一次拉取的数量的这个值,大家看一下,但是这个东西呢,不太记得。我记得好像一次拉取500条。我印象的话应该是。有一个参数可以配置这个内容啊,可以,呃,在消费者代码的可以配一下。可能我只能顺着500去找,因为忘了那个参数什么名字。
23:02
哎哎,真的,你看没错吧,你看那个。最大的拉取,哎,不一定啊,他说has been changed的到500,也就是高版本当中把它改到了500吧,对吧?啊,记得没错啊,应该是500,就500这个值呢,默认值吧,这一行对吧,默认值最大的一次拉取的一个值,就一次拉取到500,假如说你一次生产了那个,呃,5000条数据,那只能五百五百五百这种方式了。对吧,啊这种方式,但是它拉取的很快,你可能感觉不到它这个批次的一个过程啊,这一次他拉取一次呢,去拉取500啊这块是这个分区策略对吧。哎,正好在这儿默认的分区策略啊,默认的分局策略在这啊。消费者的那个。嘛,对吧,啊,这是500,也就是说那既然有500,如果说我下游的呃,处理速度可以再快一点的话,我可以一次拉取什么。
24:05
那么2000条啊,这样也提高了他这个什么消费能力啊,一次处理的数据要多一点啊,是这个意思啊好,那这个呢,就是消费能力不多,但是更重要的是还是第一个什么这个方案提高的。更靠谱一点啊,提高的更靠谱一点是这个意思,这最后呢,我们阐述了一下这个面试体啊。
我来说两句