加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

如何通俗易懂的向面试官解释什么是 RPC 框架

发布时间:2019-03-24 00:54:51 所属栏目:建站 来源:Java技术架构
导读:关于RPC 起宰衡识什么叫RPC,为什么要RPC,RPC是指长途进程挪用,也就是说两台处事器A,B,一个应用陈设在A处事器上,想要挪用B处事器上应用提供的函数/要领,因为不在一个内存空间,不能直接挪用,必要通过收集来表达挪用的语义和通报挪用的数据。 好比说

 关于RPC

起宰衡识什么叫RPC,为什么要RPC,RPC是指长途进程挪用,也就是说两台处事器A,B,一个应用陈设在A处事器上,想要挪用B处事器上应用提供的函数/要领,因为不在一个内存空间,不能直接挪用,必要通过收集来表达挪用的语义和通报挪用的数据。

好比说,一个要领也许是这样界说的:

Employee getEmployeeByName(String fullName)

那么:

  • 起首,要办理通信的题目,首要是通过在客户端和处事器之间成立TCP毗连,长途进程挪用的全部互换的数据都在这个毗连里传输。毗连可所以按需毗连,挪用竣事后就断掉,也可所以长毗连,多个长途进程挪用共享统一个毗连。
  • 第二,要办理寻址的题目,也就是说,A处事器上的应用怎么汇报底层的RPC框架,怎样毗连到B处事器(如主机或IP地点)以及特定的端口,要领的名称名称是什么,这样才气完成挪用。好比基于Web处事协议栈的RPC,就要提供一个endpoint URI,可能是从UDDI处事上查找。假如是RMI挪用的话,还必要一个RMI Registry来注册处事的地点。
  • 第三,当A处事器上的应用提倡长途进程挪用时,要领的参数必要通过底层的收集协议如TCP转达到B处事器,因为收集协议是基于二进制的,内存中的参数的值要序列化成二进制的情势,也就是序列化(Serialize)或编组(marshal),通过寻址和传输将序列化的二进制发送给B处事器。
  • 第四,,B处事器收到哀求后,必要对参数举办反序列化(序列化的逆操纵),规复为内存中的表达方法,然后找到对应的要领(寻址的一部门)举办当地挪用,然后获得返回值。
  • 第五,返回值还要发送回处事器A上的应用,也要颠末序列化的方法发送,处事器A接到后,再反序列化,规复为内存中的表达方法,交给A处事器上的应用
  • 怎样普通易懂的向口试官表明什么是 RPC 框架

(图片来历:https://www.cs.rutgers.edu/~pxk/417/notes/03-rpc.html)

为什么RPC呢?就是无法在一个历程内,乃至一个计较机内通过当地挪用的方法完成的需求,好比好比差异的体系间的通信,乃至差异的组织间的通信。因为计较手段必要横向扩展,必要在多台呆板构成的集群上陈设应用,

RPC的协议有许多,好比最早的CORBA,Java RMI,Web Service的RPC气魄沤背同Hessian,Thrift,乃至Rest API。

关于Netty

而Netty框架不范围于RPC,更多的是作为一种收集协议的实现框架,好比HTTP,因为RPC必要高效的收集通讯,就也许选择以Netty作为基本。除了收集通讯,RPC还必要有较量高效的序列化框架,以及一种寻址方法。假如是带会话(状态)的RPC挪用,还必要有会话和状态保持的成果。

概略上来说,Netty就是提供一种变乱驱动的,责任链式(也可以说是流水线)的收集协议实现方法。收集协议包括许多条理,许多部门构成,如传输层协议,编码解码,压缩解压,身份认证,加密解密,哀求的处理赏罚逻辑,怎么可以或许更好的复用,扩展,业界通用的要领就是责任链,

一个哀求应答收集交互凡是包括两条链,一条链(Upstream)是从传输层,颠末一系列步调,如身份认证,解密,日记,流控,最后达到营业层,一条链(DownStream)是营业层返回后,又颠末一系列步调,如加密等,又回到传输层。

(图片来历:ChannelPipeline (The Netty Project API Reference (3.2.6.Final)))

这样每一层都有一个处理赏罚接口,都可以举办差异的操纵,好比身份认证,加解密,日记,流控,将差异的处理赏罚实现像拼积木那样插接起来就可以实现一个收集协议了(快速开拓)。每一层都有本身的实现,上层不必要存眷面向收集的操纵(可维护)。Netty已经提供了许多实现。

(图片来历:http://docs.jboss.org/netty/3.1/guide/html/architecture.html)

虽然Netty尚有很多甜头,好比对非阻塞IO(NIO)的支持,好比在链上转达时最洪流平的镌汰buffer的copy(高机能)。

【编辑保举】

  1. 风行的十四个呆板进修编程说话框架和器材
  2. 美国国度安详局释出其软件逆向工程框架 Ghidra
  3. 13个超适用的Vue PC端框架!
  4. 写给技强职员:遏制进修框架,要专注基本常识
  5. JS框架比拟,Angular照旧Vue相宜才最好
【责任编辑:武晓燕 TEL:(010)68476606】
点赞 0

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读