00:00
那接着那个逻辑resource manager创建完之后啊,那么在下面我们能明显看到。接下来是不是该创建一个dispar了,对不对啊,那这边呢,我们会发现,呃,后面呢,Resource manager有单独的一个start命令,但是在同样的在这个方法内部你找不到dis.start为什么呢?呃,老版本还能找到,那么从1.7还是一点几,我忘了开始他把。分发器的启动放在这个里面了啊,没写在外面,那我们就来看看这一行啊,Dispar。我们按顺序来看一看啊,好点进来。接口对吧,找时间啊找时间。有点慢啊,不是没有是有点慢,那么这边呢,只有一个默认的啊,叫默认的dispart runner啊。
01:00
好搜方法create,那来到这里边呢?当然它还有多层的调用对吧,那这边咱们也不啰嗦,直接接着追,追哪呢,是不是还调用一个对吧?哎,这打个点。再进来,那么这里呢,再往下。是不是又做套了一层啊,对吧,不过这里我们能看到他是不是利用了一个runner对吧。用了一个dispat runner啊,当然这这个我们也不关注,我们接着往里追就可以了啊这三个点。Four,再往里走。还有一层是吧,嗯。Create里面直接拗了一个东西,啊,终于拧了一个东西,那这个东西我们点进来看。嗯。好。是不是这是一个构造器对不对,你别看它名字长的是不是一个构造器啊,直接六嘛,好,那里面两个变量的赋值,还有一个什么。
02:01
Start,但是这个是什么,你的。Service,而我们说了,我们的每个组件都是有高可用,呃,一个组件在的,它是要去选举对吧啊。Dispart也有,Resource manager也有啊,包括job master其实都是有的,这是他们每个组件对应有一个选举服务,好,接着往里看start。嗯。好是个接口对吧,再找啊再找。但关键在哪里,怎么找啊?这边大家可能会看错对吧,哎,我们要找的是S。这个可不是咱们部署的时候,整体把job manager设的高可用是什么模式啊,咱们那个包括你基于雅安提交的话。每一个这种力度的组件,Dispart跟resource manager,它的选举,选举服务也是基于standard alone的啊,Standard alone这一点啊,要注意啊,好,Start来到这找start方法。
03:16
好,这边呢,里面做了一个判断,对吧,还有这边也做了一个判断,那是不是核心在这一行。对吧,啊,反正刚才就是跳转来跳转去,最终呢,咱们进入到一个选举服务的start方法啊,选举服务的start方法这里面呢,它都会调用这这个方法名大家可以认证眼熟,因为什么呢?后面会经炒到你想想每个组件都有选取服务,是每个都得这么跳过来,最终是不是都得调用这个。那么不同的组件,它对这个方法有不同的实现,来,咱们点进来给大家看一眼。CTRL加H,你看它是不是分了。
04:03
Resource manager的实现,还有dispat的实现,甚至呢,Job manager runner的实现啊。所以这个方法呢,呃,大家认你熟知道就好了啊,方法名先记下来啊,我这边就做一个草稿啊。好,那咱们接下来是不是看,呃,Dispart里边的。啊,终于追到他了,对吧?好,追到他之后,我们看这里面做了什么。是不是run执行的一个什么东西啊,对吧,好是不是又是这种熟悉的写法,一个lada对吧,一个线程写法,好它是不是开启了一个新的。处理啊,这边很繁琐很啰嗦对吧。没事啰嗦就啰嗦嘛,你习惯也没办法,人家就这么写的,那这个方法点进来跳到这里。跳到这儿之后呢,它是先把如果呃先停一下,就确保没有重复起吧,啊呃确保没重复起,那这边我们核心看哪呢。
05:10
这个方法是创建了一个处理对象啊,这个还不是再往下。呃。这个只是做一个赋值对吧?啊没有什么,哎,最终呢,我们看他写的很隐蔽,你不注意你找不到呢。Learn run是不是那么就执行的意思吧,对吧,它执行什么呢?执行一个这个东西,Start这个写法大家懂不懂,是不是兰布达表达式啊,对吧,它这么写是不是就是这个对,这是不是一个对象啊。对象调用它对应的start方法对不对,哎,所以你就要找这,你要对这个不熟悉,你还不知道啊来。我把大家点个点啊,啊在这里啊。
06:01
点你发现它又一个接口对吧,没事找实线,现在要哪个实现呢。肯定不是最后一个对吧?诶你看这边是不是分的类型啊,是job本模式还是session模式啊,那还有一个共有的一个负类啊,一个负类抽象的啊。那我们来教本模式找一找呗,这里面有吗?有对吧,好有有咱们就看这。诶。为什么是on star,不是这个吧,对吧,没那么快啊,没那么快。所以我们如果严谨一点,应该从抽象的副类开始找起,哎,对吧,抽象的副类在这走啊,那个on star不是现在调用啊,不是现在调用,那是不是到这了。啊,抽向了这里,那你看又是这种run if state create什么意思啊,如果是create状态,那么就执行后面这里啊。
07:09
好,那这个又是兰布达写法对吧?两个冒号是不是当前对象调用了一个start对吧,好。你看是不是埋的还是比较深的呀,啊再点。点过来之后,到到了这里,他才调用了一个什么,终于到了on star,然后再点。好点on star抽象哎,刚才是不是找到了,其实是不是具体的一个子类里面有对应的方法呀,对吧,所以我们找star job里边的啊,这个job啊。啊,搜索。On star啊,终于来到这儿了啊,这才是一步步跳过来,那么这里面呢,它是不是创建了一个dispat网关服务啊?啊,对吧,转发器服务对不对,Service是不是服务的意思啊,这是它封装的类型啊,那么create关键就在这里create啊,马上就要到我们接近我们想知道的那一步了。
08:14
再点。点进来之后,你发现又来到了这个抽象的附列里面,对吧,它里面又写了一个小接内部接口对吧。在找。现在找哪一个了,同学们?CL加H出来了。是default。对吧。是default。找C啊,绕来绕去的对吧啊,这样才显得他水平比较高,对不对啊。好,这里就是咱们要找的核心逻辑了,什么东西呢?你看这是不是一个dispart?先定义了它对吧,你看这里是不是做了一个。
09:03
是不是创建的,这才是真正的创建,同学们,这才是真正的创建。创建dispar。那后面呢,你看。所以把它启动了,哎,你看这核心逻辑藏的这么深,一直藏在这里啊。启动part啊。这个就是咱们呃能看到的啊,这个类名咱们可以呃考一下对吧,放在这呃,Dispart的启动,我这边回头再嗯,要不要整理呢。呃,的方法怎么样?第。的创建和启动。
10:02
好,那怎么创建呢,咱们也没必要去看呢,对不对啊,你你看它又是那跳来跳去的,没什么意义,关键在哪,是不是它启动的时候做了什么事情,对吧,好。
我来说两句