00:00
好,那么接下来呢,咱们就要来看两个东西啊,刚才让大家眼熟的啊,一个叫rpc service。一个叫rpc server啊server这个叫什么RPC服务对吧,翻译起来,那这个叫什么。RPC服务器是不是还有一个是服务,一个是服务器啊,那他们名字啊很像,那首先他们是不是终端的一个变量。刚才看到了对吧,哎,包含了这两个东西,那我们一个一个来看什么是service。它是RPC服务的接口,有主要有几个作用。第一个咱们终端的启停就是他来。触发的吧,啊是他来触发的啊。它是,呃,应该说由他最开始触发,但他要经过一手啊,他来触发server,再由server真正的启动这个终端啊。
01:05
也就是说他是命令的发起者,是不是命令的发起者,好了,另外一个它还有一个作用,根据提供的地址连接到。Rpc server,并返回rpc gateway连接到大家注意。这个指的是对方的,呃,啥意思啊,就像咱们这两个节点对吧,这个是老大job本manager,这个是task manager里面的其中一个组件,好吧,呃,然后呢,它是连接到对方的一个叫server的东西,连接对方的server,那么这个server返回给他一个给位。那这个getway我们说是不是用定义通信行为的呀,那咱们之后老大要通知小弟,是不是通过这个网关来通知他,哎,就是这么一个过程啊好,还可以延迟调度对吧?啊等等,因为它里面有一些方法,咱们刚才没没没去提对吧,比如说终端里面的一些方法,这是不是异步执行啊。
02:12
还有这个空对吧,那当然还有一些跟调度相关的给大家我我找找啊。呃,你看。比如说这个方法。Schedule是不是调度的意思啊,这个就是一个延迟的异步调用啊,Schedule涉及调度就可能要等待对不对,可能要等啊,这个做一个了解啊了解。好了,这个是。哎,我们说他服务是不是一些命令的发起者啊,啊,就是说什么事都是他主动发起的,对吧,这个是service啊service。好,那么我们看看在咱们里面的这个具体的实现,诶我往上翻,翻到这个service啊,我们看看它的一个结构是什么,它是一个接口啊接口,那这个接口呢。
03:08
它有一个唯一的实现叫阿卡rpc service,诶大家注意这些呢,都是flink封装的啊啊。是不是一个阿卡的RPC实现了啊,就这个意思,我们说了RPC它怎么实现的,是不是基于R卡的呀?啊,所以它的实现就是阿卡rpc service。那这里面呢,主要有什么获取地址,获取端口。还有连接。连接啥意思啊,我们不是说连接对方的server返回一个网关吗?那就是这个动作connect连接啊。那还有啊,这是几个connect方法,还有一个重要的方法叫。是不是启动server?启动server对吧,哎,好。呃,停止serve,这是不是启停啊,哎,这就是咱们前面讲的。
04:05
第一点启动和停止谁呀,Server?那第二点对应的什么呀,Connect方法啊,这个对应的是connect,那第三个就是其他的了啊好。嗯,我按到什么了。那么关于这个咱们阿卡rpc service啊,就它的这个实现呢,它是阿卡里面阿卡实现中对于act系统的一个封装啊。对他的一个封装,那么。我们来看看啊,里面是不是有一个act system,你看。哎,我标个点打个点。对吧,这是不是咱们前面介绍到的一个系统,对吧?啊,它封装的这个东西,它包含了这个东西啊,包含了这个东西好。
05:03
那其他的。呃,我们再看看啊。啊,这一段是一些更细节的描述啊,嗯。呃,它封装了这个之后,并保存了一些映射关系,对吧?呃,就像你的电话号码跟你本身的一个对应关系啊。那么其他的呢?呃,这个又在说什么呢?就是第一点。还是啰嗦的这句话,是不是一个start server啊,说它可以启动这个server啊,啊,它根据不同类型创建不同的actor,诶大家注意它这个start server是一个很重要的方法。Start server。Start server是用来启动server,然后呢,大家注意还有一个关键词。
06:05
是不是创建艾对吧,那么具体的体现是不是基于阿卡的,所以它叫阿卡RPC艾啊,这是咱们要知道的两点,第一点。他。这个启动server这个方法,他是不是做了两件事。第一个。什么?它是不是有一个X。是吧,是创建了一个演员呢,就具体的一个点对吧,好另外一个他是不是启动了。Server。对不对啊,两件事,这个方法是比较重要的一个方法啊。另外呢,还有第三一点,关于这个server,咱们还得给大家讲一讲啊。呃。那这个我们说了,是不是有个邮箱啊。
07:00
对不对,还记得前面的模型吧,那邮箱是不是来接收消息做处理的,所以这边有一句话,这个阿卡的艾特他是实际的接收者,对吧?啊,是由他来接收的,另外RPC请求在咱们flink里面被封装了一个他自己定义的一个类型啊,大家知道就行,这是它封装的类型啊,RPC。啊,那么还有一个。重要的点。这句话来。你这个艾不是接收到消息了吗?对不对,那接收之后呢。他最终。会使用动态代理。他使用了一个代理模式啊,代理模式将所有的消息转发到谁来真正的处理啊,一个东西叫invocation handler啊。Handler是不是一个处理者处理器的意思啊,对吧,说白了就一句话,通过代理转发到这,让代理来处理啊,这边是具体的一个start server,来我们看一下这个方法吧,啊说半天对吧。
08:13
是不是在这里啊,构造器里面。这个service。是不是调用了一个start server,好,接下来看这里面点。呃,没有是吧,我们看一个它的实现,是不是这个阿卡的实现了,好点进来。找这个方法来,你看。那么首先呢,咱们看一眼啊。呃。你看这里是不是创建了一个act?是不是get act refer是不是返回了一个对象啊,这个这个就是了,这就是咱们讲的那个点啊,另外呢。
09:00
我们看看那个代理指的是什么呀,我们往后看啊往后看。呃。这里。在咱们270行上下附近,这理plus这个词是什么,是不是代理啊啊代理,呃,那么他呢,传了一个这个invocation handler这个呢,就是咱们实际要处理的处理的那个类啊。你看它返回类型叫什么rpc server。啊,这边给大家写一下吧。嗯。我们说,呃。通过代理转发啊。转发,然后呢,最终都转发到。Invocation handler啊进行处理啊,这边可能大家比较陌生,对吧,什么叫代理,呃,就。
10:03
你的代言人嘛,好吧,啊,别人帮你做一个代理代理。那这个东西呢,就是前面创建这个,大家熟悉熟悉就行了,好吧,这几个东西,那这个东西在哪创建在上面这啊在这个阿卡VO等等这里创建了。啊,没了,就几个关键点啊,关键点。大家了解一下啊。好了,这那前面是咱们这个主要功能,主要作用的一个介绍啊,那接下来我们再来详细看看是什么东西啊。Server里面。我们看server来返回返回。返回返回,你看是不是返回了一个rpc server对吧?Start之后,那我们来看看这个东西是啥玩意儿啊。
11:03
Rpc server,我点大家会发现它也是一个接口,什么样的接口啊。是不是自身的网关呢?自身的王冠了,啥意思啊?来还是画一张简图,比如说这是jobva MAS,这个是task,对吧,随便的task manager对吧,那我们说这里面都是一个终端对吧,那终端里面是不是都有一个server。它是不是有一个server。哎,大家注意,这个server是自身的代理,用来调用自己的方法。自身的代理,所以它叫自网关嘛,对不对?自身的代理,那么我们前面提到不是有一个getaway吗?那个又是什么东西啊,那个是别人的代理,还记得这个网关怎么生成的吗?来注意看啊,这边要把概念搞清楚,同学们很容易混淆啊,比如说我这个job manager要跟task manager通信,它是不是首先由这个发起者service啊?
12:15
Service对吧,这个东西它是不是连接到对方的server。那这个社保他是不是自己用的呀,他不可能给别人对吧,那这个时候他怎么办呢。是不是给他提供了一个叫网关的东西啊getway啊GW对吧,那么我们最终要调用对方,也就调用别人,是不是通过对方的网关再去调用到他自己的。网关呢,这个叫自网关呢。那自己的网关再去调用具体的。方法啊,是这么一个过程啊,同学们,那所以这个为什么叫自网关调用自己的方法,还有接收。接收网关的请求,是不是接收他的请求啊,这个咱们一会会在那个图上会有体现啊,会有体现啊。
13:11
因为这个比较不好理解啊,不好理解。那么所以我这边标红,我们可以理解成它是一个自身的代理对吧,那他代理有两个实现,一个叫阿卡VO handler,还有一个叫F的阿卡invocation。Handler,那这个是不是?涉及到高可用的那个阻拦的那那种方式啊,说白了对咱们来讲,我们就说有一种东西叫。就行了。那么。呃。那我们来看看他自身代理是怎么实现的,好吧,啊,那比如说我看看找一找。咱们这是一个终端,我们找他的start方法,我们看到他代理为什么叫自身代理,好吧。
14:05
你看终端的start方法,它调用的是谁呀。是不是通过自身的代理来启动啊,诶大家注意,这是一个细节啊。我们说终端的启动。实际上是由。自身网关。Rpc server是吧,来启动的。自身网关自身代理对吧,你看是不是rpc server.start啊。这个代表是他自己啊,自己的一个抽象点。呃,然后再找对吧,呃,你看你找到rpc server具体的。这个实现。你看是不是到这儿来了?这是不是一个rpc server的实现了,我们刚才讲了对吧,哎,我们刚才讲了,哎,然后呢,你看。
15:05
底层是什么?是不是?T。Tell方式对吧,然后传递一个消息,什么消息啊,启动的消息对不对啊,然后发送者是无发送者。看到了吧,这个就是我们追到底层一点,它是怎么来启动当前端点的,现在大家来我们再整体讲一遍。比如说他,呃,Job manager自身。启动怎么起的呀?首先是不是得这个service去start server,先把它提起来吧。诶之后呢,我们是不是在start方法实际上是什么,是不是点start。对吧。那再进一步,再底层一点,他用的什么方法。
16:00
哎。是不是T的方式啊。是不是这样子?有问题没有,这是不是一个启动过程?首先在构造器里面,构造器里面,终端的构造器,它是把设备已经启动好了呀。启动好之后,呃,你调用当前端点的启动方法,它会。调用到server的启动,那server的启动实际上是调用了T方法对吧?哎,发送一个启动命令,这个就是咱们更细节一点的东西了啊,所以呃,咱们现在对这个service跟service要大概的要分清楚了啊。
我来说两句