谈到rpc框架可能有点陌生感,但是如果换成框架语言Ocaml,大家一定不陌生。
众所周知,ocaml是一款专门做functional programming的一款软件,尤其是它的界面非常简洁,还是专门的server进行线上编写。
rpc框架和ocaml是什么关系呢?
由于ocaml是一门编程语言,所以一般来说ocaml是不能单独存在加入日常生活的使用的。
这时候就需要软件框架的存在了,来将这些不同的语言汇编到一起。
rpc框架就是指这个框架,而不是单独一门结构性编程语言。
下面的图很清晰新的展示了rpc框架的运行轨迹:
主要分为两部分,简要概括出来就是用户和服务器通过网络进行的封装响应。
他最不同的一点就是可以将类似Ocamel的编程语言, 诸如C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk之类的functional programming结合起来。
从而高效的运作。
一般公司,尤其是java用得比较多的公司,会选择使用动态代理的方式来进行rpc框架的构建。
那到底什么是动态代理呢?
说到动态代理就不得不提静态代理:
静态代理可以说是一个java class层面的问题
就是说如果你想implement一个方法,可以不直接调用那个class的方式使用。
或者换句话说,通过间接的方式调用class,这时候就需要代理了。
静态代理的优势就是很直接,但是一旦变得复杂就会容易出bug,这时候就引入了动态代理。
动态代理结合了静态代理的代理模式,不仅可以充当一个中介平台的作用进行代理的功能,而且可以实现这个中介平台的自动化。
换言之,就是在静态代理手动更新平台的基础上变成了自动更新平台,每进来一个class都可以自动实现中介功能的转化。这样,在复杂的程序中不仅可以化简复杂的流程,节省时间,而且,还可以简化代码的复杂程度,实现减少bug的目的。
这一期的rpc精讲就到这里啦!!
如果你还有什么想知道的,想看的,欢迎评论区留言,我们下一期见~