00:00
代码,待会我们再做统一的笔记,那本地监控完了过呢,现在我们要研究一个问题,就是远完成远程监控这个糖果机。假如现在糖果机呢,不在我们本地,不在北京对吧,说老师这个在北京你人也去不了啊,是这样子的啊,在将来在一个体系里面,北京有台服务器,明白我的意思吧。你将来不不能说,诶说老师昌平那地方你也能跑过去,不不相当于也是远远程监控吗?将来我们每一个地区一般都有自己的一台服务器,只是你们现在还不知道,比如将来你们做大数据,大数据的话,你每你的大数据是全国的一个项目。你的运力也会在各个均可到各个省份,省份统计完数据过后,把这个数据提交给总的这个总服务器进行汇总的,所以说如果是远程监控,现在总部想去远程监控成都的或者是海外的这个糖果机,咱们又怎么解决呢?因为对方可能网络。
01:02
跟我们都不一样,你明白我意思吧,你可能比如说我们北京有十台糖果机,你纽约还有20台糖果机,你不能。你你没办法直接调嘛,因为网络可能都不一样,你可能还要走一下这个VVPN的代理过去啊等等,那你就涉及到远程代理了,那怎么办呢?好同学们看相对麻烦些,那我首先来分析一下啊,方式一。方式一,因为远程机不在本地,不在本地,比如在另外的城市,在另外的国家,这是可以使用烧的编程来完成,缺点麻烦。确定麻烦,第二层呢,第二层在远程放置一个外部服务器,通过外部编程来实现远程监控,这也是可以的,就远程调用这也是可以的,但是安全性不够高啊,当然有的是我们学完那个阿卡,我们用阿也是可以的,阿卡也算是一个方案。我那边跑一个actor,我远程调用是吧,但是他也也涉及到一些其他东西嘛,阿卡其实也可以理解成是一个远远程代理的一种模式,但现在我要讲的是RI叫remove method知识,这叫做远程方法调用,远程方法调用同学们在学Java的时候呢,有些老师可能会讲一下r mi,这个r mi这个技术在我们那个时代是非常火的。
02:19
啊,非常火,非常非常非常非常火,所以会r mi的人呢,那档次都不一样。现在现在能用的。用用处呢,可能是在代理模式上还有一些用处,其他可能就慢慢弱化了,因为有更好的东西来替代他,好,那么不管怎么样,我们用mi来把这个代理,代理的这个这个思想讲清楚就可以了,为什么用r mi呢?因为RI它可以将sock的。底层封装起来,对外就提供一个方法调用,这样比较简单。啊,这样我们就称之为远程代理,那么远程代理呢,我们来看一下一个示意图。这是本地的一个监控。
03:01
啊,这便是我们远程的一个机器,我怎么能好,你看我用agent来实现对这个MAG的调用,就这么简单,简单的说,远程对象。就是远程对象的本地代表,N不是代理的意思吗?就远程远程机器有一个本地代表,我只问你要数据,至于你怎么去,要是你们之间的事情。那我就可以把这个任务分解开来。啊,这条线呢,用的是r mi来解决。好,通过它把远程对象当做本地对象来使用,这很牛逼啊,这牛逼,那么我们来看一个图,那么要实现刚才这个远程调用,有一个核心的技术,就是你怎么样来实现对远程对象的调用呢?因为人家在另外一个地方,你在这你怎么调用呢?好的同学们,这里面有一个核心技术叫做Java的r mi实现代理远程,这个技术我简单说一下啊,因为这个地方我重点讲的不是r mi,但是作为讲课呢,我一点不说,那同学们可能对这个完全没有没有没有没有一点思想也不行,我简单说一下,R mi指的是远程方法调用,它是一种机制,能够让某个Java虚拟机上的对象调用另外一台Java虚拟上的对象,这称之为远程代理。
04:24
其实底层就是上课编程。底层就变,那么会出现一个什么情况呢?就这样子的,这是我本地的monitor,然后呢,我有一个imi的tu,呃,Tu啊tutub,这个tu是树桩的意思啊,树桩树根的意思,那么这边呢,有个mi,这个Kitty是个槽,相当于一个槽,相当于说我这边之间呢,可以给你无缝的插入接接回。那么通过他,因为你这是本地的,他去跟他进行交互,然后呢,我把这个结果给你返回完事了。啊,这就是一一个叫远程代理的经典使用场景,那现在呢,我们。
05:01
来直接先给大家看一下r mi,注意啊,我分两步走,第一步先给同学们演示一个r mi的开发案例,第二步,第二步我们用我们用什么呢r mi来解决,刚才这个代理模式好,大致分成两步走啊好,我们来看看这个r mi是什么东西。好,我们看一下RM是什么东西来走案例,那么现在呢,给他演示一个RM的开发实例,待会我要实现这样一个功能啊,编写一个r mi的案例。编写案例,那么代理端及客户端可以调用r mi的远程调用,完成一个远程端注册的一个方法叫C哈的方法。C hello的方法,并返回结果,好,这个呢有点不好理解,我画个图,我画个图帮助同学们理解啊啊理解一下,说我这里有个远程端。
06:01
远程的啊各位远程的一一个客户端吧,或远程端,远程端这边呢。有一个另外有一台机器,比如说这边呢,呃,这样子啊,这样子我换一个方向写,这叫本地。本地本地程序啊,本地的叫本地程序,注意听本地程序。本地程序,那么。这边我们称为远程端,远程端呢有一个远程程序,它在运行和远的地方远程远程程序,那现在呢,远程程序里面有个方法,我就随便写一个啊,比如他有个c hello方法,注意听c hello方法,这个c hello方法呢,做一件特别简单的事情,就说出了一句话。比如说它输出了一个什么呢?Hello word写完了,那现在我要实现一个什么效果呢?就是说我这边有一段代码,比如说我这有一个df test的方法,注意听。它的方法我想去调用谁呢?我要调用这个远程端的。
07:05
这个哈,就这么一个意思。远程端的。远程当然他这个肯定也是一个内包起来的啊,远程端的什么方法C哈方法就这个意思。大家想一想,这个还是不是很容易喽。你还不不是简简单单的一个。不是简简单单的一个,呃,阿卡来解决的,阿卡是发一个消息,但是调用本质还是在阿卡那个那边本地调用的是吧,我是直接实现远程的方法调用。啊,其实跟那个还是有,跟阿卡还是有一点区别,阿卡是我发一个消息给你,你接收消息过后,你本地概念是把结果返回来,这个RMS干什么呢。他是直接就调你的方法了。就好像把你远程当做本地一箱干一样好,这个呢,作为一个程序员还是应该知道有这种技术的啊,这种技术呢,以前也叫EGB啊EJB这种技术这是EJB,现在已经没落了啊,现在没人没人再用这个EGB了,我们那个时代这个技术是很牛逼的啊,叫EJB,叫EGB,叫企业Java病,会这个EGB的一般那那就很牛了,呃,一天我说,诶程序员聊的一般是怎么聊呢?诶哥们,今天你你工作完成了几个EGB,我完成了五个啊,厉害对吧,但工作工作量就按这个EGB来解决的。
08:25
啊,现在一金币呢,已经被基本基本上没人用了啊啊好,那待会儿呢,我们要实现这个效果,就是我这噌的一下啪的一下就掉到了你的这个C哈,就要干这件事情。就要干这件事情好,这个是用什么技术来实现的呢?各位朋友,这个就是我们传说中的r mi来搞定的。就是这个东西呢,就是I,只是同学们呢,可能以前没有怎么接触过,但是如果远程代理就要用一下了,简称remote remote Java远程的方法med,这个这个invocation啊in。
09:02
VOC。OK啊,调用啊,刚才单词怎么写的。Invoatevovo。Invocation invocation写下。啊。好,就这么一个东西啊。那我们现在就来玩一把这个呗,啊,他是怎么做的呢?他怎么实现这个这么牛,这么有意思的一一个一个实现呢?来各位同学聊两句聊两句啊。呃,这样子是这样,他这样干的啊,他这样干好首先呢,我们说呃ii远程方法调用呢,远程方法调用它是计算机之间通过网络实现一种对象调用的一种通讯机制。那么使用RI机子的一台机器上电脑对象可以调用另外一台机器上的这个远程数据,就直接拿过来了,直接拿过来,那么r mi它不但可以调用,而且它是设计成一种面向对象的方式开发,与这个r mi对应的呢,还有一种面向过程的方法叫RPC啊,RPC那个呢也有,还有一种方法叫RPC。
10:10
啊得有些可能是RPC。RPC啊,这个这个呢,没有那个RM利用啊,它是远程过程调用啊,要靠就是这个靠的意思,但这个呢,没有I厉害啊,Mi它是面向对象的,那个是面向过程的,它直接可以远程对向通讯,就是r mi的一个东西,那现在呢,我们来完成一个这样的任务啊,同学们。呃,远程调用输出一个,哈哈就完事了,方法方法这样子的第一步,首先制作远程端的接口,就这个。就同学们看到这一段,我们要先写一个接口。大致把这流程写下,先开发一个接口。开发一个接口啊,开发一个,开发一个接口以后呢,同学们开发一个接口以后呢,在远程端实现这个service的文件,它第二步实现这个,呃,他这边实现一个。
11:04
Service的文件。Service文件够不算完,还要完成一个注册。完成一个方法注册。这个方法注册说白了就是把你的c hello注册到我们这个这个这个体系里面去,注册完了以后呢,下面的第四一步我们就可以用了,就说mi就可以。调用了,就是这边呢,我们通过I'mm这边可以调用它了。这边就可以调用了,大致分成这么四步啊,两头都在写代码啊,两同学理解起来有点难度啊,理解起来有点难度。但是呢,这个东西你知道了过后,你至少对开阔同学的眼眼界是非常有帮助的,非常有帮助的,好,那现在思路做完了,那么就不废话了啊,画一个示意图,大家看我这里这么玩的啊。嗯,远程端也叫服务器端,我先写一个my remote implicate,这是一个啊,是个实例,我实现它。
12:04
啊啊,这样说错了啊,说错了,这个是我的接口,这个接口到时他来实现。它来实现,它实现里面我用这个my remote实现这个接口,里面这个接口我写了个c hello。好的,这个接口拿到写完了以后,远程端里面写代码注册,然后客户端,也就是我们的代理端,他要干什么呢?他要去用这个接口,因此这个文件要给到什么呢?这个接口文件也要给到他。你不给我接口文件,我调不了,所以说接口文件很重要,这个接口文件呢,你也在用,我也在用,所以他会拷贝两份,就如果是呃北京,那可能通过远程先把这个接口整个程序打包给到服务器端,再把这个打包给到客户端,就有点类似于我们前面讲的那个SPA和worker分布式的分式的好,然后呢,调用的时候,这条线调用怎么调用呢?是通过r mi远程调用,呃远程调用,远程端注册的服务,它是以一种服务的形式来提供的,就好像咱们打电话对吧,诶说怎么打电话也是。
13:10
中国移动或者中国联通提供的服务,那么该服务需要实现接口c hello,它返回远程的接口,它调完了过后,你这不是有c hello要返回结果吗?这个结果就出来了,但是注意啊,它是直接调方法。这个就很猛了,不像我们阿卡斯发一个消息。消息完了,我这边执行,执行完了把结果返回,他是直接走方法。好,同学们,思路说完了。我们现在。看代码了啊,代码其实并不多,代码其实并不多,但是呢,嗯。看一看吧,好,同学们看,我这边会有三个文件,三个文件,第一个文件呢,显示我们的接口,这个接口就是刚才老师说的大家都要用的接口,叫我这边写了一个叫c hello,当然你可以写更多的方法,比如说呃,其他方法对吧,可以,甚至你可以实现远程调用对方的数据库。
14:04
只要你给我方法调这是那个接口,好写出来,快速写一把啊同学们。啊,今天时间比较紧张啊。后面还有好多知识。大家做好一个加班的准备啊,嗯,但是课程真的很有用,今天咱们讲东西都是到了,相当于说到了收获的季节,对吧?好,那么我把这个写一下,反正东西都给你讲完啊,不用担心这事啊,肯定都给你讲完。My remote,好,我把这个呢给同学们写到这,诶写一个叫做tree啊,这这是接口对吧,这是一个my remote。那么这个接口,这个接口里面呢,方法是由你来确定的,可以说这是一个接口,这是这是一个接口接口。接口接口文件吧,接口文件里面可以写你的方法,供客户端和供本地和远程使用的啊,该文件呢,该文件会提供给给谁呢?给这个远程端。
15:12
和本地端,本地本地端使用啊,使用它是呃,它是一个交互的一个地方,那时间的关系我就不再写了啊,确实没时间写了,那么这个地方呢,我就去抛出一个异常,我先因为这个接口呢,不能乱写,他要去继承一个叫remote的啊,这个不能乱写叫remote,你不你不去继承他,那你就不会是一个标准的这个接口。就跟我们你你们学学很多知识一样是吧?呃,像你们学的I那个I action,你们学ru,呃,Spring m VC的时候,它有action,那你要去按照他的流程写好看,他直接引入的是Java mi的remote那代码写进去。这个方法会抛出一个异常,一定要写,如果你不写抛异常,这个程序跑不起来。
16:05
啊,所以这这些代码呢,你你在网上是找不到啊,就说这些代码就是不抛这个异常整个代码是跑不起来的。这我写了一个什么呢?我写了一个抽象方法,因为我不知道你将来怎么实现,所以说这是一个抽象方法,好,抽象方法完了过后呢,同学们看我现在呢,写了一个这个东西,就现在远程端一个my remote implement,好,这个呢,我也写上去啊,同学们时间关系,我把这个拿过来用一用就行了。但我要实现的是,呃,这个类呢,我要去呃实现,诶不是啊,找错了,是这个好,这边你看我先继承的一个这个UN cost remote object,这个你们也不要去了解了,他这个是用来做一个统一这个传播的远程传播的一个对象,同时看这看就行了,V,我们的my remote,这就是实现我们刚才写的这个接口,好我把这个呢拿过来用一用啊啊现在把这个代码拿过来用一下。
17:07
啊,这个干脆一次性拿过来算了啊,代码并不难啊,并不难,那我写一个吧,写个类啊。来写一个类叫my my remote my remote remote implement I IL PL,好,写到这当了,我把这个粘过来就行了,我做点注释,大家看一下。好,这个照样引包好,该怎么引就怎么引就行了,引进去。好这边呢勒Ming,因为你这个名字它有一个命名名字管理的一个体系,就naming,那么看我们是干了什么事情啊,怎么看这个地方就实现了。这里就实现了我们remove my remote这个接口,或者这个treat。找mot。
18:02
Mot这个treat。那么这个写完了以后,大家看这一段代码是干什么呢?这这就实现了,这段代码就是要完成刚才我说的一个注册任务,因为你这写了,你不把这个。注册上去,别人不知道你这个方法,你看这看这个示意图。你要完成注册,如果你只写了过后,你不把这个C哈注册到整个这个体系,我将来是掉不了的。就好像有的,我告诉你啊,我这有个东西对吧,所以说这段代码呢,是完成我们的注册任务写到这儿。这里我们完成对这个C。C哈,包括这个对这个服务啊,对服务这边,比如说我们这提供了一个服务叫c hello的一个注册任务。注册任务,那么这个注册的主要的目的是要干什么呢?就是把我们这个I mi的地址跟这个name绑定,这个name是受I mi进行管理的,就是命名服务啊,有人叫命名服务,受它的管理就是相当于管理起来。
19:09
啊,管理起来对是吧,注册就是相当于对什么呢,对我们这个服务进行管理啊,服务管理好代码很简单啊,大家看我给它跑起来,哎,我现在我要开始注册了。我开始注册一下,注册这地方呢,可能会出点小的插曲啊,有些时候呃,端口啊,或者网络呀,你可能将注册不行,那么我这写了两段代码看第一种注册方式是这个。第二种注册方式是这个,如果你第一种呃不好用,你就用第二种,因为有时候机器系统呢,呃不一样,这个它跟底层跟操作系统有关系,好这是第一种注册方式。这是第一种注册方式。啊,大家听一下就行了啊,这个这个不是我们的重点。但是为了讲这个呢,你不把这个讲了没没法演示好,这个是我们的第二一种,这个注册方式,两种呢,你根据情况来用就行了,我们先用。
20:09
这种吧,啊,大家看我现在做了一个册,什么呢?就是999将来这个remote哈,就是我的一个服务,这个服务它指向了service,而这个service指向了它,而它又指向c hello,也就是说这一个服务里面到底有多少个方法呢?取决于你这写的是什么。你如果有多个方法,那这个服务就代表多个方法。好,那现在呢,我来玩一把,来运行一下,走跑起来。那么一跑呢,我们可以看到这边呢,对不对,它就它就报错了,那报错说明我这个不行,就换一个吧,啊换我这个可能不好使,这边换一个方式。啊,换一个方式把它注册一下。这边我要来重新的搞一下,好再来。来看这次应该看看行不行啊。他怎么还在报错了,看一下错误原因,他说connection,呃,Connection refuse to house的这个IP地址是地址,他说refuse,这个不应该呀。
21:12
啊,不应该,我再看看是不是刚才不着急啊,这个问题能解决,我再重新打回来看看是不是刚才执行的问题。好。好不着急,现在呢,我们再把它改一下,诶看这次行不行呢啊,它有时候是可能启动是跟刚才环境有关系。好的好,这次呢,咱们比较OK了啊呃,大家也不用去过于的研究这个mi,只要知道这个流程就行了,现在呢,我远程服务已经开启,说127.01.999端课上有个服务叫做remote remote hello,好,现在呢。我们因为是远程代理嘛。呃,Imm,所以说现在我就要开始用这个做件事情了,怎么办呢?就要写我的这边的程序,就是就是我们的远程客户端,远程客户端看看一下怎么用的就行了,同学们看代码非常的简单。
22:10
就是我呢?用naming lookup name是我们的命名,就是叫做名字服务或者命名服务,我通过lookup找到了这个远程服务,把它转成了一个我的一个接口,然后就可以掉了,就这么简单。就相当于说我通过这个命名服务找到这个你注册的这个service,然后service里面的任何方法我都可以用,那么你这个service里面方法从哪来的呢?就你这写的,你这有什么就有什么。啊,你这有什么,我就我就有什么,但是它这个底层机制还是很复杂的,就是你要研究往里面研究的话,它底层有大量的S编程。大龄首个名字好,最后呢,我这写了一个motor c,我用它就是在这里我创建了一个对象视频直接掉了go。跑起来就完了。就我调这个go就能找到,好同学们,这个我就不啰嗦了啊,给你们跑一下,看看远程服务有没有被调用起来,那么这个名名字就叫做my remote client,取个名字这里我就共用了啊,我没有在新开呃,那个文件夹就共用了MY。
23:18
Remote。Object。好代码我就拿过来用一下,他们看代码很简单很简单,我把naming啊。引进去,然后c hello有了好同学看,关键就在这里,如果我在这个地方找到了一个远程注册服务,那么在我这边就会输出从这个远程的hello word返回的一个字符串,这就说明什么呢?我远程调用成功了。啊,就说我一个ii这条线已经打通了,那是不是这样子呢,我们拭目以待来跑一下。跑起来好,当我运行过后呢,我们发现这个结果对吧,跟我们想的应该是一样的哦,展开一个hello word,这个hello word是从哪来的呢?我告诉大家啊,是从遥远的这个地址过来的啊,那怎么来的呢?你看这你不是写了一段代码吗?你写了一个哈吗,哈喽。
24:16
Word,好,这个流程就说完了,这次我们花了一点时间给大家讲了一下r mi,那我讲这个r r mi。看什么呢?我是为了讲这个远程代理,因为远程代理的核心就用到了ii。如果我不讲这个,我上来称了一下给你讲了,我告诉大家,大家基本上也不知道是什么流程啊,通过这个学习呢,至少同学们知道在Java里面有个叫r mi的东西,它是怎么实现的,跟别人聊呢,也多一点这个聊天的聊天的一个资本,好这样子啊,我把刚才讲的这个r RI mi呢,给他简单的做一个板书和整理,好板书和整理。
25:00
好,同学们,现在呢,我们来做一个板书和整理,刚才我们讲的是什么?哎,刚才我们讲的是什么呢,好的。刚才。我们讲的是这个内容。啊,这段代码是在哪儿的。说明。哦,这个代码应该是在这啊。好,刚才这段这段文字应该放到哪呢?第三方,好,这个待会儿再看啊,现在我们把刚才讲的这个代理模式先简单的给大家整理一把啊,整理一把呃,代理模式我们怎怎么说的啊,我们先说一下代代理模式的呃基本概念。对吧,先做了一个代理模式的基本概念,好来吧。啊,内容呢,有稍微有点大啊,信息量有点大,今天那么代理模式基本概念呢,我说了一下,诶代理模式它主要是提供一个提升,那现在提升我们现在还还没说到是吧?啊讲一些边角料的东西。
26:02
好代理模式,那么我说了代理模式有。这样几个概念。至少大家听到这现在知道代理模式呢,是为对象提个提升。啊,它可以是远程对象。好,可以是创创建开销比较大的对象。还可以是什么呢?安全控制的对象,这个安全控制呢,一般是用什么实现的,一般是用这个动态代理。啊,动态代理来实现的。好,那么这个概念有了过后,我们又讲什么呢?我们说了一个糖果基因的案例,就是糖果基因呢,大家可以去,诶这样按照这个事例去提出了一个需求。啊,提出一个需求,那这边我们讲的是看一个需求糖果机。哎,那么我们这整理一个标题三。三果机我们具体来说有这么三个要求,第一个对吧,可以监控,希望能够达到一个效果,什么效果呢?本地监控和远程的监控,那么我们首先给他解决的是本地监控。
27:11
那本地监控我是怎么做的呢?诶完成了一个本地监控的代码。好,这个代码呢,我要给他拿过来。这是完成一个本地监控的效果。那具体来说呢,就是我们这一段代码。诶具体来说就这段代码,代码呢,我给同学们板书过来,哪里就这local啊,就看这地方就呃不好复制粘贴了。好,这样整个复制过来吧。复制,这是我们本地的。好,这两个是相同的,那相同的话就拷一份过来就行了,我就把这份拿过来就行了,这是我们本地的糖果机的一个监控的解决方案。那这个讲完了以后呢,诶,我们就提出了一个新的概念,远程怎么去解决呢?因为远程有这个逻辑啊,就是你本地有个服务器,你要监控远程一个服务器怎么办。
28:08
怎么办的一个问题,好,于是我就提出了远程监控糖果机的需求。那么首先我做了一个说明。都要说诶。远程呢要稍微麻烦一点,然后我总结了有这么三种方式。啊,三种方式,第一种方式呢,就是我们自己写so课编程,写上这个呢,太累了啊,你太累了,你so编程那写的不对,你看啊,刚才我们已然可以调方法,如果这个方法你不用r mi。你不用ii这个机制,你们自己想一想,其实RI还是很牛的,如果你自己想去实现远程调用一个对象方法,你试试看,你你根本做不到。你仔细想啊,如果现在我给你一个任务,说你们现在学Java学那么久,现在我要求你们实现一个什么呢?你用本地去调一个远程对象的方法,你根本做不到。
29:01
但是RI给我们解决问题了,RI解决了,所以说他这个还是很厉害,那么我们就提出r mi的远程调用这么一个机制,对不对?那提出这个机制过后呢,为了让大家了解r mi这个机制,我做什么事情呢?我就聊了一下mi这个远程代理的方案和这个I I mi是什么,于是我就提出了远程的代理模式监控要用到的一个技术RI。好,那现在呢,我就提到这里来。啊,远程代理说到这了,说到这儿我画了一个图。诶画了一个图,这个图呢,就是它的远程本地调用本地的一个代理去调用远程机器的一个方法的一个系统。对好,这个示意图呢,涉及到一个核心技术,涉及到哎,涉及到一个核心的技术,什么技术呢?就是同学们没有听过的叫2I。啊,这个将来你会不会用到不知道。
30:02
有可能你们将来参加工作以后,你们会用到这个东西,也有可能就用不到了,不知道用不用得到啊,所以说。就是相当于说同学们知道做一个技术扩展,那么r mi是什么呢?我就对r mi做了一个介绍,诶我们做了什么介绍呢?看一下。做什么介绍呢?我说r mi是什么什么什么,它是一种机制,它是一种机制,什么机制呢?它能够让某个Java虚拟机对象调用另外一个相机对象的方法,诶你看反过来咱们再一看,诶,效果好多了,因为刚才代码走了,再回头一看,清晰了,好清晰了,那这个图的示意图呢,就更加的清晰,把它画的更明白了。哎,你看这就更明白了,你看怎么老师做做这个。做做这课件也是很累的啊,那我我的课件一般都是自己写啊,都自己写,所以说备课为什么背那么晚,就是有道理的,对吧,不是说把别人的东西拿过来,呃,这里拷贝念一念就完事了,那那那讲课就特轻松啊,那么2MI呢,我又做了进一步的介绍,说他的机制是什么呢?它的机制是一个底层是跑的这个。
31:13
Sock,而且呢,它实际上是面向对象,它比这个RPC呢要高级一些,它比RPC要高级一些,好这个呢也跟大家聊到这里,我总结了有什么三句话对吧,第一句对啊,第二句第三句就是它重点就是它用面向对象的方式来搞定了远程的调用,这个很厉害啊,当时ii出来的时候还是。呃,风行一时啊,大家所有的程序员都已学会r mi,感觉很高大上,那现在呢,我们为了讲解呢,我们举个例子,就是RI,我们去举一个什么例子给他讲解它呢?好,我就走了一个案例,对吧?这个什么案例呢?就是请同学们编写一个客户端,客户端通过ii远程调用返回一个c hello的方法,并返回这个结果,对吧?这就是刚才我们说的这个东西。
32:05
啊,这不写好,然后呢,我们就说了一下开发的步骤,大致是这么四步啊,大致是这么四步。好,那这个四步呢,哪四步来看一下,第一步先制作我们远程的这个接口文件,对吧?诶然后呢,写service,然后呢注册,然后远程就可以调用了。这么四部曲四部曲,四部曲完了过后,我们就干什么呢?就根据这个示意图,先画了一个程序框架图,告诉大家怎么理解,这边呢,可以这样去理解,就是它。他去。他去用到它啊,这个不叫继承,是要使用到它使用。这个我们称之为使用。插一个小的图形。好,这叫使用,不是继承呢,好使用到它,诶使用。而这边呢,我们叫实现,诶它是两个概念不一样的,而这边远程这个要去实现它,因为你你给我提供这个方法嘛,说我要去实现,哎实现两个概念不一样。
33:13
好,那中间呢,做完这个工作过后,我们就可以调查的东西了,好,这是它的一个三个文件的一个示意图,或者叫程序框架图描述到这里,对,然后呢,我们这边这个图就有了,诶我们这个图就有了,怎么来的,当我们有了这个图过后呢,我们思路就变得清晰了,我们就走了一下代码的实现,好代码实现写到这儿就水到渠成了。啊,那这写了一个Java mi的代码实现。那具体来说这个代码呢,我就不啰嗦了,我们就直接看看这的一个结构,其实这就出现了三个文件。啊,这个是我们的接口文件,这个是客户端,这个是实现文件非常清晰啊,同学们以后遇到,如果你们在开发中遇到这种要远程调用的,你可以用韩老师这个方法来玩一把啊,啊,那别人就觉得你很厉害了,因为大部分程序员他不懂嘛,你会你你跟还是那句话,就说你说一个程序员比另外一个程序员厉害,那肯定就是说你要么你比别人知道的多,要么你比别人干的好嘛,你没有别的,没有别的原因了。
34:23
好,我把这个r mi呢给它就跑到这里来一段代码。好,然后截取到这里,好,同学们关于这一段的代码说说明mi,我们就先讲到这。
我来说两句