课堂课题:
什么是RMI,什么是RPC,两者之间的区别是什么?
关联任务:
任务五
直播时间:
2019-06-05 15:00:00
课堂内容:
视频链接:
PPT链接:
提交按钮:
小课堂内容格式
标题:
【修真院xx(职业)小课堂】课题名称
开场语:
大家好,我是IT修真院XX分院第X期的学员XX,一枚正直纯洁善良的XX程序员,今天给大家分享一下,修真院官网XX(职业)任务X,深度思考中的知识点——XXX
(1)背景介绍:
背景介绍的时候,尽可能的要宽广,讲清楚来龙去脉,讲清楚为什么会需要这个技术。
(2)知识剖析:
讲知识点的时候,尽可能的成体系,学会成体系的去给别人介绍知识。现在很多做的都是零散的,没有分类。
(3)常见问题:
最少列出1个常见问题。
(4)解决方案:
写清楚常见问题的解决方案。
(5)编码实战:
尽可能的去寻找在真实项目中在用的。如果你能找到某个网站在用你说的知识点,这是最好的。学以致用,否则当成练习题就没有意义了。多准备一些demo,讲解过程中将知识点和demo结合,便于大家理解所讲解的知识点。
(6)拓展思考:
知识点之外的拓展思考,由分享人进行讲解,这些东西就是所谓的深度,也是一个人技术水准高低比较的表现。
(7)参考文献:
引入参加文献的时候,在引用的句子后面加上序号【1】。参考文献中列出详细来源。不要去抄别人的东西,这是一个基本的态度。
(8)更多讨论:
Q1:提问人:问题?
A1:回答人(可以是分享人,也可以是其他学员):回答
Q2:提问人:问题?
A2:回答人(可以是分享人,也可以是其他学员):回答
Q3:提问人:问题?
A3:回答人(可以是分享人,也可以是其他学员):回答
(9)鸣谢:
感谢XX、XX师兄,此教程是在他们之前技术分享的基础上完善而成。
(10)结束语:
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
标题:
什么是RMI,什么是RPC,两者之间的区别是什么?
开场语:
大家好,我是IT修真院上海分院第13期的学员徐元祥,一枚正直纯洁善良的java程序员,今天给大家分享一下,修真院官网java(职业)任务2,深度思考中的知识点——什么是RMI,什么是RPC,两者之间的区别是什么?
(1)背景介绍:
在了解RMI和RPC之前,先了解下服务器的网站的架构(见ppt图片)
那么网站为了应付高并发和业务量越来越大,于是就需要将每个模块分开,一个模块一个服务器,将一个软件的功能进行拆分,比如搜索放在一个服务器,购物车放到另一个服务器,通过服务器的互相调用实现搜索完物品,加入到购物车。
这样的话就需要实现服务器之间的互相调用,这样的话就需要分布式的架构。
其中的分布式的远程通信技术有RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等。
这次讲的就是RMI和RPC之间的通信技术的区别
在此之前先了解一下基本的原理,从底层层面来看,网络通信需要做的就是将流从一台计算机传输到另一台计算机,基础传输协议和网络IO来实现,所有的分布式都是基于这个原理来实现的。
远程服务通讯,需要达到的目的是在一台计算机上发起请求,另一台计算机接收到了请求后处理并返回处理结果。
为了方便就有了应用层协议,其中就有咱们讲的RMI和RPC协议
(2)知识剖析:
RMI和RPC的区别
RMI和RPC都是远程对象方法调用,区别有RPC支持多种语言,而RMI只支持Java语言。
RMI和RPC的最主要的区别在于方法的调用。
在RMI中,每个远程方法都具有方法签名,如果一个方法在服务器上执行,但是没有匹配的签名被添加到这个接口上,那么这个接口就不能够被RMI调用
而在RPC中,当一个请求到达RPC服务器上的时候,这个请求就包含了一个参数集和一个文本值,通常形成“classname.methodname”的形式,这就向服务器表明,被请求的方法为“classname”的类中,名叫“methodname。然后RPC服务器就去搜索与之相匹配的类和方法,并把它作为那种方法参数类型的输入。
RPC:远程过程调用,用于一个进程调用另一个进程的过程,从而提供了分布能力
RMI:远程方法调用,在远程过程调用的基础上,提供了分布式对象的通信。允许运行在java虚拟机的对象调用运行在另一个虚拟机上的对象的方法,可以是不同进程也可以是不同计算机
RMI的工作原理
首先、RMIService必须先启动并开始监听对应的端口
其次、RMIService将自己提供的服务的实现类注册到RMIService上,并指定一个访问路径供RMIClient使用
最后、RMIClient使用事先知道的路径到RMIService上去寻找这个服务,并使用这个服务在本地的接口调用服务的具体方法
(3)常见问题:
1、关于RMI使用的时候的url的绑定
2、配置文件的放哪里
3、调用的过程怎么样
(4)解决方案:
1、web配置文件的url要和service的url对的上,不然是连接不了的。
2、service层是防止的服务器端的配置文件,web层放置的是客户端的配置文件
3、因为用的是一个虚拟机调用另一个虚拟机上的方法所以过程会比较慢,而且如果是一个服务器调用另一个服务器的话可能会因为网络之类的出现故障。
(5)编码实战:
(6)拓展思考:
(7)参考文献:
https://zhuanlan.zhihu.com/p/52503248
https://blog.csdn.net/xiaominthere/article/details/46501505
https://zhuanlan.zhihu.com/p/50678735
https://zh.wikipedia.org/wiki/Java远程方法调用
https://www.cnblogs.com/xt0810/p/3640167.html
https://blog.csdn.net/jianghuchuanke/article/details/81902449
https://blog.csdn.net/baidu_39511645/article/details/78345573
(9)鸣谢:
感谢各位师兄,此教程是在他们之前技术分享的基础上完善而成。
(10)结束语:
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~