00:00
好,那接下来呢,我们继续聊后面的内容,咱们这个离线。框架当中啊呃,那上午呢,我们是聊了这个from啊,当然呢,我们说了一个点就在于哎from呢,它的TS,其实如果遇到这种更名的时候会一点小小的问题,对吧,所以呢,两套方案可以解决啊,你说可以用不更名的打印的框架,另外一个呢,当然我们可以修改太阳电S的一个源码,对吧?好,那接下来呢,我们用的是卡夫卡的一个China。啊法China KA法China呢,那直接将数据写到KA法,省了1THINK,比这个memory China或者think,呃,这个fair China加卡卡think。要效率要高对吧,因为中间呢,不需要这一层sing直接写进去,那其实卡卡China这个组件啊,在我们当中大家都知道它属于中间的一个China对吧,但是在卡夫卡这边,卡夫卡这边大家知道这个组件在卡夫卡里边它属于什么。
01:03
有同学知道吗?就是我们说了卡卡China这个组件呢,在from里边,它属于south China s当中的China。但是。卡法拆的本身,它相当于什么?那同学说了,生产者这个没问题啊。生产者,那因为我们能看到将source将数据传给我们China之后呢,China是将数据写到卡夫卡里边的,那明显是一个生产者,但实际上卡布卡柴特本身啊,它还有这个什么消费者,它还可以作为消费者,那你想如果说。我们只有这个什么。只有卡不卡加S这个工作能不能完成?就是卡法的有三种用法对吧,一种呢,就是用法上啊用法哪三种用法。
02:02
用法第一个就是S。加卡夫卡的。对吧,然后呢,再加我们的think啊,这是最常规的当做一个普通的菜单来用,那实际上在这个当中呢,我们还有第二种用法,也就是说我们可以不要think,就是当前我们离线数当当中用法,那么第三种呢,第三种那当然是拿着卡法China结合着。Think啊,只有think来用,不要south啊,不需要south也可以,对吧,这种方式也是可以的啊,那这个其实就是我们说的卡China呢,它处于中间位置,对吧?那既可以将数据写到卡夫卡当中,也可以从卡卡读取数据,所以这个组件在卡普卡里边既是生产者又是消费者。一定要注意一下啊,一定要注意一下,它既是生产者又是消费者,好,那这是我们所聊的,当然form当中还有其他东西,大家可以着手去复习,对吧?我要说一下,从现在开始呢,大家就要考虑复习的这个事情啊,要考虑考虑复习了,那复习呢,你们不是很多同学有在一个宿舍的嘛,对吧,或者就算你是一个人一个宿舍,那你周围肯定也有其他的同学,那可以做什么事呢?比方说像from,或者说卡不卡这种框架呢,它相对来说比较简单一点,也就是说我们授课的时长比较短一些,对吧,而且它属于中间的传输框架。
03:37
那你可以定一下,哎,我周一到周三你跟同学定一下,周一到周三我们俩就定好都复习这个,大家手头上也有这个高频面试题,对吧,主要是复习,然后呢,到了周三晚上或者周四花一点时间。AB。啊,自己想问什么问什么,关于这个框架我们所学习过的东西,然后呢,B去回答,回答过程当中A可以补充,那B呢,反过来也可以问A,对吧?两个人组成一个小组,一定要学会去说。
04:11
啊,不要光自己去背,因为面试的时候你要你是要把这个东西说到。说给面试官听的说是很重要的啊,就是以往的这个学生呢,都有一个共同的点啊,呃,这种口才表达比较好的跟。学的好,但是表达能力很差的。最后找工作你会发现。口才好的反而找工作找的更好一些。就是工资啊,或者这方面都会更高一点。因为想人家面试嘛,就面你一个小时,顶多两个小时,那你要把你会的东西,并不是说你全部能敲出来对吧,而是要表达出来,有的同学就是学的好,肚子里面有货,但是呢,表达不出来,那人家看不到呀,人家怎么知道你肚子里面有货呢。所以一定要注意啊,未来是要这样去做复习呢,从现在就可以做啊,就规定一下,两个人商量一下这个框架,我们应该用一周还是三天两天对吧,然后定一个时间,时间定好到了一个时间点,两个人互相的去问一问,能听懂。
05:16
能做到吗?我相信大家可以做到。做到扣个一。对,这个事儿肯定是可以做到的,一定要做这个事啊,为了未来的一个找工作。做不到的,抠眼珠子,你说的对啊。好,那接下来呢,我们看这个卡夫卡,呃,卡夫卡本身呢,比方说我跟大家说一下这个框架应该如何去复习,对吧,到了卡不卡,那比方说就是吧,我们还是聊这个的事,对吧呢,首先你对于这个东西,因为大家拿到的那个高频面试题啊,我们总结的面试题呢。
06:01
它就是一道一道的题,那如果说你在复习这个框架的时候,一定要抓住一个逻辑线。就是你要对这个框架梳理一个逻辑线出来,比方说像这种这种框架from,或者卡夫卡这种,那就顺着south China think来说,对吧,想一想数据流,那其实像传输工具比较简单,那这个逻辑线呢,其实就是数据流。数据流怎么走的,对吧?那接下来south China think south China think中间是不是有库的事物,有take事物,那south还有呢,中间还有什么。有拦截器。有China选择器对吧?呃,然后我们从China到think之间有think组啊等等这些东西,你把它串起来,那south除了south你还知道哪些south,那各有什么优缺点,China对吧?卡普卡China fair China,然后这个memory China。Think I think have think I think啊等等这些的东西比较多啊,你可以去总结一条线一条线出来,那接下来呢,就是这是整个的数据流的东西,那除了数据流当中能展示出来的,除此之外还有什么呢?比方说这个框架的监控。
07:16
比方说这个框架所做的一些优化,数据量等等的,你的配置信息对吧,配置。就是默认配置是多少,你把它改成什么呢?啊,为什么要改,一般是为了优化嘛,对吧,你要顺着这个线去记,我相信大家对于这个框架呢,会记得更牢一点,因为有同学说我背了这个面试题,我翻开这个面试题呢,就诶一看也就会了,对吧,我不用去看,那如果说把这个面试题合起来,发现我不知道从什么地方去说了,那这个就告诉大家,你要通过一个数据流作为你的逻辑主线。顺着一个逻辑去记啊,反正这块东西一定要这样去做一下。一定要这样去做一下啊,要不然你零散的记那些知识点,你最后再给面试官说的时候一定会丢东西,对吧,为什么让大家主动说的更多一点呢?因为一个面试官给你面试的过程,他已经安排好了,到底要面试40分钟还是一个小时,基本上这个时间不会有大范围的变化,那除非。
08:20
连问了三个相对来说比较简单的问题,你啥也不是,啥都不会,那可能五分钟直接出门右拐了。对吧,那如果说你答的还可以,他也不会说,诶本来安排了一个小时,他可能会问到一个小时20分钟,一个半小时,那不一定不会问到三个小时,类似于这样子的,好,那这个时候你说的越多,他是不是问的就越少。大家想一下是不是啊,而且你是主动说的,那你主动说的内容呢,错误的可能性是不是最低,如果人家。哎,一直问一直问,很很可能问到你的知识盲区了,你不知道。
09:00
很有可能吧,对吧,那一定要注意把这个知识点呢,相关的东西要记牢啊,一定要顺着一个线,这样的话不会丢,说的越多,而且有逻辑主线,人家听的也更清楚。啊,你的表达能力就这样上来了,对吧,比方说大家玩狼人杀可能知道是不是啊,狼人杀就这样子的啊,第一逻辑思维,第二表达能力啊,其实这个是一个很好的游戏啊,很好的游戏锻炼程序员的这个表达能力的啊,因为可能程序员他的逻辑思维相对来说比较好,但是表达能力呢,都比较弱一些,对吧?啊是这样子的,能能听明白我的意思。一定要做这个事儿的。偶尔跟大家多说一点啊好那。说了这么多,是不是夜里开天眼了票了?你这有点过分了啊。我就举个例子嘛,对吧,呃,那接下来呢,到咱们的卡夫卡,卡夫卡呢也有同样的三块内容要我们去掌握的,第一个是生产,生产者,就刚才大家说的对吧,我卡夫卡写的第二块呢,就是卡卡的服务,我们也称为叫啊,那另外就在于。
10:16
消费者,那卡夫卡这个框架呢,我们也稍微给大家写一下啊,写一下你要注意的东西有哪些?啊,对于卡不卡的一个框架而言。对吧,首先呢,当然有,我们的删降者叫producer。啊,然后呢,是我们的集群broke啊,这是我们梳理的逻辑主线,我不会所有的东西都给大家去说啊,这个是你要自己整理的,最后我们会有面试课啊,大家的面试课呢,也是我这边去带的啊好,那伸展者这边你要复习的东西。对吧,有哪些东西啊,大家想一下,一提到卡夫卡的生产者,你记得哪些东西?
11:03
你记得哪些东西?A。还有呢?主题分区。Topic。拦截器,序列化器,分区器,OKOK,把这个拿过来啊,我就直接粘过来了。啊,拦截器伸展者。异步同步啊,就发送流程呗。对吧,啊,发送流程A相对来说是比较重要的啊,那你们说还有什么呢。啊,15。嗯,Isr队列,SR队列跟这个生产者没什么关系吧,它属于我们集群当中的啊三。
12:07
三的线程和什么外线程发送流程当中的事物密等信,哎,对了。事物幂等性啊,Exactly once,那不就是事物当中的嘛,对吧,相当于AC是负一啊CK负一,好,那这个分支器呢,是是具体的按K分区的,对吧,那其实就是分区规则。分支规则,有同学打了一个,还是red Robin,这个不对啊。这个分区规则不是range。啊,没有它的分区规则是什么。分区规则。是不是应该是有指定。分区则发往。指定分区对吧,这是第一个级别最高的啊,有分有分区发到指定分区,那如果没有分区呢,没有指定分区。
13:12
没有指定分区则撒网。哪?Kid哈希吧,啊,就是根据则。根据。K指哈希啊,K的哈希来做这事啊,那两个都没有指定的,没有指定分区也没有K啊,没有指定分区也。没有K的时候。那这个时候是什么,是不是大的方向是轮巡,然后轮巡当中呢,遵循一个叫粘性分区吧,啊有一个粘性分区。啊,一个年限分区对吧,啊类似于这样子的。大的方向是轮询啊,在多个分区之间轮循,但是如果说你是属于很小的一段时间内,那我们遵循粘性分区规则,对吧,这个没有问题吧,啊是这样子的,所以之前答range的跟什么搞混了呀。
14:13
有同学来说一说嘛,之前有同学在这边答R,那这个是跟什么混啊?确实有range分区规则。哎,对了,陈总说了,对消费者,对消费者的分区规则当中是不是有range red robin2个对吧,也有粘性啊,还有粘性分区对吧?是这样子的,行,那其实生产者这块呢,就这些东西你需要去关注的,对吧?你搞一个逻辑线啊,用发送流程作为逻辑线把这些东西串起来,那a cck啊,AC我一定要说一下啊,这边呢,大家知道配置有011,还有一个什么负一,对吧?那问到a cck的时候,大家可能都知道没有问题,但是有可能啊,就是看大家的一个吸收能力了啊,自己吸收的这个。
15:04
知识的掌握的程度了啊,他有可能不这样问,有可能问的是如何保证生产者不丢数据。啊,就这边比方说啊,我我只是举一个例子啊,叫如何保证生产者。我丢数据。不留数据,其实问的是什么?问的不就是A吗?对吧,啊问的就是A。问的就是A。对吧,所以直接问AC大家是比较清楚的,但是有一个问题呢,就在于他可能不直接问AC,问的是他。啊,问的是他对吧?啊,那你要知道他其实问的是A啊,类似于这种问题,他不是说直接问到这个知识点的,好那家第二个不呢,就是我们的集群,那这个是存储数据的对吧?那里边有个核心的概念呢,就是topic topic这个东西呢,我们要掌握两个点,关于主题这块掌握两个点,一个呢是副本。
16:17
第一个是我们的副本,第二个就是分区。啊,第二个就是分区那副本首先他们俩有什么作用对吧,副本的作用高可靠吗。高可靠,而分区的作用呢?分区有什么好处啊?有什么作用?对高并发并行对吧,啊高并高并发。啊可以变,那这块呢,主要有三个两个点,一个是写入数据,一个是读取数据,对吧,那除了这个读写并行处理之外,还有呢。
17:01
还有什么好处?那刚才我们说的高并发是毒跟写,那是站在生产者跟消费者的角度来说的,那站在集群本身来说的,它还有什么好处?扩容。扩容。是分区的作用吗?扩容应该是集群吧。跟分区。有关系吗?我没有分区,我一个主题规定只能一个分区,你就不能扩容了吗?分压。啊,这个词其实比较少用啊,其实叫什么呢。扩展机器不一样吗?扩容吗?扩展机器一样吗?不能叫扩容啊,对对了,钟总说对了,叫负载均衡。
18:00
负载均衡防止什么?热点,防止热点。是不是?哎,不是放置啊,防止啊,这个打错了叫防止防止热点。对,负载均衡啊,这个答的就很好,对吧,因为你想啊,我们一个主题,哎,这个主题呢,可能他用的人非常多,这个主题用的人非常多,那是不是很多消费者来请求这个主题,假如说我们只有一个分区。只有一个分区,那是不是所有的消费者都来找这一个分区,也就找这一台服务器吧,那一个分区的话,这个数据是不是存在某一台服务器leader嘛,存在一台服务器,那如果说我做了分区,假如说三台服务器,我有三个分区,一台服务器一个,那就算我客户端来访问这一个主题,实际上它连的是不是三台机器啊,这样就不会造成某一台机器特别繁忙,而其他机器可能闲的要死。
19:02
对吧,啊,就不会造成这种旱涝不均,旱涝不均就是负载均衡,这个注意啊,这两个是站在毒跟血,也就是说我们生产者跟消费者的角度来说的,而负载均衡这个是站在集群角度来说的。啊,跟扩容没关系啊,这个大家注意一下,因为我们就算一个分区,它照样卡,把机器也是可以扩容的啊,是可以扩容的,我把不同的主题放在不同的机器嘛,这样就容易产生这个热点问题。对吧,是这样子的,好,那接下来呢,关于副本当中,我们还要知道一个IR。对吧,主要是这个队列,在这个队列当中呢,为了它数据的一致性,是不是还有一个Leo和HW这两个概念有印象吗?同步副本队列当中。有两个概念,一个Leo,一个SW。有没有印象?有印象是吧,对复习的时候这就这些东西呢,都是大家去复习的一个重点内容了。
20:03
啊,周总二对吧,啊,不记得了,是不是,所以要复习嘛,我为什么说跟大家说了一定要复习啊,一定要复习好,那接下来关于。这边啊,其实就差不多就这些东西,就存储数据,一个副本,一个分区,你把这两个概念搞定啊,另外到消费者,消费者这边呢,是这样子的啊,消费者呢,其实它里边东西比较少一点,呃,第一个就是我们的分区分配规则。第一个就是分区分配规则啊,就是这个时候就提到之前有同学说的range Robin轮询粘性分区啊,不是不是轮询啊,粘性分区,我想说粘性分区啊,就是range red Robin,还有一个粘性分区对吧,主要是这个点对啊好,那接下来粘性分区是不是得。重新当我们这个分区的个数,或者说消费者的个数发生变化的时候,它会启用年薪分期啊,尽量的让上一个消费者跟上一个分区还是绑定的,但是你第一次刚启动的时候,对吧,那他用的是让Ruby range这种方式来做的啊好,第一个分区分配规则,第二个呢,其实比较简单一点啊,就是说关于off的保存问题。
21:20
Off set的一个保存问题,对吧,那我们现在知道这个off保存在哪。默认的。保存到哪?咱们现在用的是。点一的版本了。卡不笑的主题啊,Topic,对了,你看只有孙总完整的把这个东西敲出来了,注意是两个下划线是不是啊,叫下,诶,这个是我切的英文啊,下划线,下划线叫consumer。这个主题里边对吧,这是系统内置主题默认50个分区啊好,那其他的如果说不是默认的,我们可以保存到哪,那这个地方的多了,可以手动维护。
22:10
Off outside,那这个时候你是不是想保存到哪就保存到哪了,诶一般来说更多的啊,我们会保存到这个MYSO里边,因为买so呢,它有事物。它有事物可以跟我们数据,我们最终计算完的数据,我也可以保存到MYSQL,然后将保存数据跟保存outside写到一个事物里边。对吧,那这样的话有什么好处了。是不是做到精准一次性消费呀,是不是叫精准。一次消费语义对吧,我们就可以做到精准一次消费语义,如果说你这两个动作,没有事物来做这个事情。那就麻烦了。对吧,那我们想啊,那这是两个动作,刚才我们说了,嗯,手动保存的时候维护到MY搜将保存数据和保存offset。
23:09
写到一个数。写到一个事物,同一个事物当中啊,呃,那如果说我们想这个是我们精准一次性的一个保证,对吧,写在一个事物里面,假如说这是两个动作,保存数据跟保存。假如我不在一个事物,如果不在一个事物,那么他们俩一定有先后之分。对吧,一定一前一后,那比方说我保存数据先保存。我先去保存数据后提交off,这个会导致什么问题发生?
24:00
先保存数据。后。保存我们的ET这个时候是不是重复数据啊,对吧,重复数据那反过来呢,如果说我先保存offset。后保存这个什么数据呢?这个又会导致什么问题?对,这个是不是丢数据,一个是重复数据,一个是丢失数据吧,哎,数据呢,会少啊会少啊,那我问大家,如果说我们下游没有事物的框架,那肯定就用不了这种精准一次性吧,就做不到精准一次性,那优先选哪一种啊。如果没办法做精准一次性的时候,我们优先选哪一种啊?
25:01
对,肯定选重复的这种吧,因为重复我们可以到下游做什么去重,如果说你前面数据丢了,我下游都没拿到这个数据,下游可能把这个数据找回来吗。那是不可能的,对不对,因为都没给我,我凭什么能找回来这个数据呢啊,而且在有重复数据的时候,虽然我们下游可能没有事物,但是往往我们下游有什么有密等性啊。对不对,如果说我们下游没有事物,但是有幂等性的情况下,是不是也可以做到什么。精准一次消费啊,那跟生产者这边不是一个道理吗?我们先设置AC为负一,让他重复对吧,最后再加上。密等性是不是保证了数据的精准一次啊,对吧啊,所以其实这个往往来说是生产环境当中用的最多的一个。因为你要求下游有事物,而且呢,第一个你下游得有事物,这个条件就更高了,第二个你的数据跟你的ET还得保存在同一个事物里边。
26:10
对吧,这要求更高了,而且事物呢,是不是你开启一个事物,我一个阶段一个阶段去提交,那这种方式是,而且还会使我们的效率变低,对不对?你开启事物是不是也要耗时啊,所以生产环境当中更愿意用什么呢?就就用这个重复数据加密等信的方式来解决,精准一次,就是说前面消费允许重复消费。对吧,可以重复消费,因为有重复数据,但是下游呢,由有框架,有密等性,我给你做一个去重。OK吧,能听懂这个意思。能行吗?哎。对了,这个是没有问题的,对吧?啊,这是我们谈不了当中它的一个,呃,主要的点,主要的点,那其他的当然你要再去做的话,关于框架的呃。
27:10
什么优化呀,监控啊,对吧,还有其他的一些配置信息啊,这个东西你可以去聊一聊,包括还有数据量。对吧,数据量以及高峰。直。啊,峰值速度,峰值速度,两个生产者的峰值速度和消费者分值峰值速度,那你把这个东西全部都搞定了,其实你考不考也就复习完了。也就复习完了,但更重要的是我第一我里边有一些细节并没有去说啊,这个是你要自己去了解的,对吧,那第二。你要自己能说出来啊,这是我写出来的,对吧,或者说是大家在这边报一个人报一点,一人报一点,我把它总结出来的,对吧,那你要做的事情是你自己搞一张白纸,然后把这些东西呢,能全部写下来。
28:02
能知道里边儿的一些核心的点,你要做到这个事儿,那你未来面试肯定没有问题。OK吧,这是关于我们离线框架当中的这个卡夫卡啊,我就打了个样,就告诉大家每一个框架应该如何去复习。啊,就告诉你未来你应该怎么去复习啊,好,这是我们所看到的这个卡不卡,那我们把。
我来说两句