00:00
好,接下来呢,我们来看一下第四章服务器端源码的一个讲解,那我们还是老规矩,快速的回忆一下服务器端都干了哪些事儿啊,双击打开。打开之后,首先呢,是主K班集群以及卡巴集群,那么卡布集群啊,哎,启动之后呢,跟这个主K班集点进行一个注册,启动一个注册一个注册完毕之后,那接下来我们启动对应的这个controller controller要抢占主kper当中的controller节点,如果谁能抢占到,那么他就会成为新的这个controller leader啊,比如说他说算。那比如说现在呢,我们是博克零当中的这个controller抢占到了这个节点,那么它就会第一时间进行一个监听这个节点的变化,那如果这里面有节点的上下限,它就会第一时间捕获到,捕获到之后那就会进行后续的相关处理。那么接下来选择这个control leader之后,由他来决定谁会成为下一个leader,那它按照什么规则呢?按照在AR队列里面为存活的,而且呢,在AR队列中排在前面的优先成为新的leader哈。
01:07
好,那下面往下走,那假如说现在呢,我们这里面是这个BROKEER1,诶里面它呢是这个leader,那选择完它为leader之后,那么他就会把这个信息注册到对应的这个主key当中,哎,记住谁是leader,谁在SR对列里面。那么其他CTRL节点啊,可以从这个节点里面拉取对应的这个信息,诶防止啊,比如说他挂了,他挂了之后呢,那这些节点也能够诶进行一个上位啊,比如说他挂之后,那其他节点可以抢占这个节点成为新的一个controller leader。那下面呢,这个生产者啊,把数据呢,发送到对应的这个博节点上开始发送,发送之后,那么这个follow呢,进行一个同步,同步完数据之后,把数据持久化到磁盘。那么这个磁盘呢,是通过这个log的方式啊,在底层呢,是以segment进行一个切片的,那这个一个S里面包括这个点log文件,还有这个点index文件,以及还有这个time STEM间戳对应的相关信息啊。
02:07
那存完之后对它进行一个应答,应答之后,那在这个过程当中,如果说发生了leader挂了,Leader挂了之后,那在这个主K当中,这个节点会瞬间掉下,掉下之后,那这个controller就能够监听到这个节点的变化,监听到变化之后,它会从这里面获取当前的呃IR相关信息。获取完之后,那他就开始进行新一轮的一个选举了啊选举。好,那接下来呢,由这个controller啊,它呢更新对应的这个leader和SR信息,因为你这个一节点已经挂了嘛,哎挂掉之后它下去,下去之后这个controller选举这个哎,BROKE0这里面对应的这个分区呢为这个leader,那选取它完之后呢,就更新对应的这个主keepper节点信息变化。它是最新的一个leader。那这样呢,就是整个这个卡普工作的一个流程哈。
03:04
那接下来我们来看一下这个卡卡的服务器端对应的源码,那么这个卡法服务器端源码啊,它是采用盖源码进行一个编写的啊,那比如说进来之后,嗯,这是卡法源码,那这个呢是客户端,客户端呢,我们之前看过对吧?这里面有对应的这个像呃consumer啊这呢客户端啊,客户端里面有对应的这个consumer啊相关信息,以及呢,还有对应的这个生产者相关信息啊,那这个我们不看了,那下面往下看这块呢,就是这个靠。那靠这个呢,其实是整个这个卡法的一个核心源码啊,那这里面呢,主要是以这个scar的语言进行一个编写的啊,比如说打开之后,那这是对应的卡卡,那卡法里面有哪些,哎,对应的源码呢?比如说你看这里面,呃,有这个对应的API相关操作啊,有这个common通用的相关操作。那接下来往下看,这里面有一个controller相关信息,哎,这呢就是负责进行一个选举的,对吧?啊负责选举的,那下面还有一个coordinator,那coordinator里面分为两类啊,一类呢是对应的这个group,还有一类呢,是对应的这个呃,叫事物啊,对吧?哎,这呢,Group呢是跟这个消费者主相关的这个COD进行一个交互的,那下面这个呢,这个是,哎,Trans是事物相关的一个操作啊。
04:18
行,那再往下,下面还有一个network,诶network呢,就是网络相关的一些操作,那这个rap是这个2.8.0以后啊,也就说去掉这个主key啊,这种方式进行一个工作使用的哈。行,那再往下这个是安全相关的啊,这个呢是序列化相关的操作啊,这是服务器端啊,各种网络这个啊线程啊。呃,再往下呢,这是这个主key波对吧?哎,跟主key播相关的一个交互,这是主key波客户端啊,再往下那这个呢,就是这个啊,服务器端的一个入口啊,也就是说这个服务器端程序入口。那进到这里面之后往下走。点开它,点开它这里面有一个没方法对吧,没方法进来,进来之后,那这里面他干了什么事呢?首先第一个。
05:03
来获取对应的相关参数。获取平衡参数之后呢,这里面哎,Build的一个服务。创建。服务。创建完服务之后呢,往下看啊,那这个服务干什么事呢?哎,首先呢,它这里面哎调用了一个撒档啊,关闭招呢,又调用了一个启动啊,其实这块是它核心的。比如说启动服务。这就完事了啊,就把这个服务器端进行一个启动,那具体里面其实写了很多很多事情啊啊只不过呢,由于啊啊好多这个同学啊,这个之前嗯,没有学过这个嘎拉语言啊,看到这个嘎拉语言之后呢,啊还是稍微有点晕的。那建议大家呢,先去诶熟悉一下这个对应的这个卡拉语言之后啊,回过头来啊,可以再来详细的看一下对应的这个呃,卡瓦相关的这个源码啊,那在这里面呢,呃,我们呢,也不给大家呃太详细的去介绍这个服务器端的一个源码啊,因为真正这个会scar语言的人呢,还是比较少的,比如说Java程序员,大部分同学呢是不会的,那大数据当中呢,其实这个scholar语言呢,也在逐渐的弱化,主要的原因是因为scholar跟这个Spark配合这个联合使用,那么Spark的地位呢,也在逐渐的这个降低。
06:21
那后续呢,啊,是以这个flink异军突起啊,所以说FNK在这个整个这个开发当中啊,啊这个地位呢,是越来越重了,那巴克越来越降低,所以说未来这斯scar的语言呢,还是这个啊在走这个下坡,所以说这里面呢啊也不给大家增加太多的一个阅读源码的一个压力,那以后啊,啊大家真的想看这个卡法服务端代码的话呢,啊大家呢,可以先精通一下这个scanner,然后回过头来呢,诶再按照这个阅读生产者和消费者啊对应的源码这个方法啊,再来看这个服务端源码啊,也是比较简单的啊。好,那本套课程呢,我们就到这哈。
我来说两句