版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
RPC过程调用协议一、RPC基本概念1 RPC协议(RemoteProcedureCall带信息数据。在OSI网络通信模型中,RPC了传输层和应用层。RPC使得开发包括网络RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服2 RPC框后来出现BBRPC后BA进程的程序即可完成,再到后来网络时代的出现,大家电脑都连起来,这时UnixRPC可以在同一台电脑上不同进程进行,也可以在不脑上进行;而windows里面同一台电脑上不同进程间的通讯还可LPC(本地)。综上:RPC或LPC是上层建筑,IPC是底层基础。3 RPC与HTTP、TCP、UDP、Socket的区TCP/UDP:都是传输协议,主要区别是tcp协议连接需要3次握手,断开需要四次挥tcp/ip协议,Socket编程接口在设计的时候,就希望也能适应其他的所以RPC的实现可以通过不同的协议去实现比如可以使http、RMI等。4 RPC的运行流可以是长连接,多个过程调用共享同接。第二,要解决寻址的问题,也就是说,A服务器上的应用怎么告诉底层的RPC框架,如能完成调用。比如基于Web服务协议栈的RPC,就要提供一个endpointURI,或者是从UDDI(一种服务,通过该服务进行服务与搜索)服务上查找。如果是RMI调用的话,还需要一个RMIRegistry来服务的地址。A服务器上的应用发起过程调用时,方法的参数需要通过底层的网络协议TCP传递到B服务器,由于网络协议是基于二进制的,内存中的参数的值要序列化成二(marshal二进制发送给B服务器。到后,再反序列化,恢复为内存中的表达方式,交给A服务器上的应用VE面的tb为用拟本地对象,这种本地对象称为存根,存根负责接收本地方法调用,并将它们委派给各二、RPC基于RMIAPI 1 搭建maven多模块聚合项、创建rmi-rpc-<?<?xmlversion="1.0"encoding="UTF-<project "" 、创建rmi-rpc-rmi-rpc-parentnew<?xmlversion="1.0"encoding="UTF-<project <!--FIXMEchangeittotheproject'swebsite-- <pluginManagement><!--lockdownpluginsversionstoavoidusingMavendefaults(maybemovedtoparentpom)--><!-- 、创建rmi-rpc-rmi-rpc-parentnew<?xmlversion="1.0"encoding="UTF-<project <!--FIXMEchangeittotheproject'swebsite-- <pluginManagement><!--lockdownpluginsversionstoavoidusingMavendefaults(maybemovedtoparentpom)--><!--core/default-bindings.html#Plugin_bindings_for_jar_packaging-- 、创建rmi-rmi-rpc-parentnew<?xmlversion="1.0"<?xmlversion="1.0"encoding="UTF-<project "<!--FIXMEchangeittotheproject'swebsite-- <pluginManagement><!--lockdownpluginsversionstoavoidusingMavendefaults(maybemovedtoparentpom)--><!--core/default-bindings.html#Plugin_bindings_for_jar_packaging-- 2 定义一个接口,必须继承Remote接packagepackageimportimportimport*服publicinterfaceUserServiceIextendsRemotepublicUserqueryUserById(IntegeruserId)throws}packageimportpackageimportpublicclassUserimplementsSerializableprivatestaticfinallongserialVersionUID=privateIntegerid;privateStringname;privateStringpublicpublicIntegergetId()return}publicvoidsetId(Integerid)this.id=}publicStringgetName()return}publicvoidsetName(Stringname)=}publicStringgetPwd()return}publicvoidsetPwd(Stringpwd)this.pwd=}publicStringtoString()return"User{""id="+id",name='"+name+'\''",pwd='"+pwd+'\''}}3 UnicastRemoteObject实现UserServiceIpackageimportpackageimportimportimportimportimport*publicclassUserServiceImplextendsUnicastRemoteObjectUserServiceIpublicUserServiceImpl()throwsRemoteException}publicUserqueryUserById(IntegeruserId)throws{Useruser=newUser();"+return}}4 发布服.MalformedURLException;importjava.rmi.AlreadyBoundException;importjava.rmi.Naming;importimportpublicclassPublishpublicstaticvoidmain(String[]args)throwsRemoteExceptionUserServiceIUserServiceIuserService=newtry}catch(AlreadyBoundException{}catch(MalformedURLException{}}}5 客户端调packagepackage;importimportimportimportimportimportpublicclassUserControllerpublicstaticvoidmain(String[]args)tryUserServiceIuserService=(UserServiceI)Naming.lookup("rmi://localhost:8888/userService
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电脑图文设计制作公司会计述职报告
- T/CAAMTB 19-2019汽车零部件再制造企业管理体系要求
- 2026年秋招:大数据题库及答案
- 2026年海南省人教版初中历史上册第9章同步练习题
- 中小学生交通安全教育主题班会课件【文字版】
- 电子技术及应用基础说明
- T/CAQI 467-2025液氩生产技术要求
- 《公共关系学讲义》课件
- 保利国际广场“保利国际公寓集中商业”市场定位及营销策略竞
- 江苏省2026届普通高中学业水平合格性考试模拟二英语试卷(含答案)
- 《高脂膳食诱导食蟹猴代谢综合征模型制备规范》
- 2025年中国钢筋套筒行业市场分析及投资价值评估前景预测报告
- 中华人民共和国国际海运条例(2025修订)深度解读课件
- 【感恩教育】教师节主题班会《有一种炫耀是“我的老师很严格”》(课件)
- 医院三管三必须培训课件
- 华为资源池管理办法
- 收银员的职业道德培训
- 醉驾担保协议书
- 甲状腺细针穿刺细胞学病理诊断
- 食品微生物控制加工技术
- 创新方法大赛TRIZ航天-氢敏变色材料
评论
0/150
提交评论