https://blog.csdn.net/mindfloating/article/details/39474123
https://blog.csdn.net/mindfloating/article/details/39473807
超级nice的文章:
https://my.oschina.net/hosee/blog/711632
多看看讨论不错,不过里面的答案良莠不齐。个人觉得:郑大侠的答案最好。
https://www.zhihu.com/question/25536695
流行的RPC框架
目前流行的开源RPC框架还是比较多的。下面重点介绍三种:
gRPC是Google最近公布的开源软件,基于最新的HTTP2.0协议,并支持常见的众多编程语言。 我们知道HTTP2.0是基于二进制的HTTP协议升级版本,目前各大浏览器都在快马加鞭的加以支持。 这个RPC框架是基于HTTP协议实现的,底层使用到了Netty框架的支持。
Thrift是Facebook的一个开源项目,主要是一个跨语言的服务开发框架。它有一个代码生成器来对它所定义的IDL定义文件自动生成服务代码框架。用户只要在其之前进行二次开发就行,对于底层的RPC通讯等都是透明的。不过这个对于用户来说的话需要学习特定领域语言这个特性,还是有一定成本的。
Dubbo是阿里集团开源的一个极为出名的RPC框架,在很多互联网公司和企业应用中广泛使用。协议和序列化框架都可以插拔是及其鲜明的特色。同样 的远程接口是基于Java Interface,并且依托于spring框架方便开发。可以方便的打包成单一文件,独立进程运行,和现在的微服务概念一致。
RPC服务和HTTP服务对比
我认为主要是效率。HTTP 协议,没有定制化的RPC效率高。而就算先给传输的内容加密,然后再给传输数据,对于调用过程,也需要处理HTTP协议自身的解析,对于定制的RPC协议完全可以很简洁。