如何通俗易懂的向面试官解释什么是 RPC 框架
关于RPC 起宰衡识什么叫RPC,为什么要RPC,RPC是指长途进程挪用,也就是说两台处事器A,B,一个应用陈设在A处事器上,想要挪用B处事器上应用提供的函数/要领,因为不在一个内存空间,不能直接挪用,必要通过收集来表达挪用的语义和通报挪用的数据。 好比说,一个要领也许是这样界说的: Employee getEmployeeByName(String fullName) 那么:
(图片来历: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(高机能)。 【编辑保举】
点赞 0 (编辑:河北网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |