- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
                        查看更多
                        
                    
                
RPC          框架原理介绍 
                                                                             1 
                                                                                    目 录 
1. RPC        框架的概念   3 
2. RPC        框架的原理解析          4 
      2.1    流程纵览              4 
      2.2    客户端调用                  5 
      2.3    动态代理              5 
      2.4    网络传输  6 
      2.5    服务端数据接受                         7 
      2.6    真实调用              8 
      2.7    服务端的动态加载                            8 
3.    总结   9 
                                                                                                                                                                                    2 
1. RPC   框架的概念 
RPC  (Remote Procedure Call )–远程过程调用,通过网络通信调用不同的服务,共同 
支撑一个软件系统,微服务实现的基石技术。使用                       RPC 可以解耦系统,方便维护,同时 
增加系统处理请求的能力。 
这里写图片描述 
上面是一个简单的软件系统结构,我们拆分出来用户系统和订单系统做为服务存在,让 
不同的站点去调用。 
只需要引入各个服务的接口包,              在代码中调用       RPC 服务就跟调用本地方法一样,              我刚接 
触到这种调用方式的时候颇为惊奇,                我明明调用的就是         java 语言方法啊     (已java  为例, 
现在  RPC 框架一般都支持多语言),怎么就调用了远程的服务了呢?? 
                                                                             3 
2. RPC   框架的原理解析 
最近自己写了一个简单的            RPC 框架  KRPC ,本文原理分析结合中代码,均为该框架源码 
2.1 流程纵览 
这里写图片描述 
如上图所示, 我将一个         RPC 调用流程概括为上图中            5 个流程, 左边  3 个为客户端流程, 
右边两个为服务端流程。 
下面就各流程进行解析 
                                                                             4 
2.2  客户端调用 
服务调用方在调用服务时,一般进行相关初始化,通过配置文件                                         / 配置中心       获取服务端 
地址 
用户调用: 
// 用户服务接口 
public interface UserService  { 
   public User genericUser (Integer id,String name,Long phone) ; 
} 
//  调用方 
//  服务初始化 
KRPC.init( D:\\krpc\\service\\demo\\conf\\client.xml ); 
UserService service = ProxyFactory.create(UserService.class, demo ,demoService ); 
User user = service.genericUser( 1, yasin , 1888888888L ); 
一开始接触        RPC 调用方法肯定就有疑惑,                 它不是一个接口吗,  直接调用应该没啥效果啊, 
我也没有引入实现包。 
带着这个疑惑,我们就进入下
                 原创力文档
原创力文档 
                        

文档评论(0)