http://blog.csdn.net/yinwenjie/article/details/49453303
版权声明:欢迎转载,但是看在我辛勤劳动的份上,请注明来源:http://blog.csdn.net/yinwenjie
经过了详细的信息格式、网络IO模型的讲解,并且通过JAVA RMI的讲解进行了预热。从这篇文章开始我们将进入这个系列博文的另一个重点知识体系的讲解:RPC。在后续的几篇文章中,我们首先讲解RPC的基本概念,一个具体的RPC实现会有哪些基本要素构成,然后我们详细介绍一款典型的RPC框架:Apache Thrift。接下来我们聊聊服务治理和DUBBO服务框架。最后总结一下如何在实际工作中选择合适的RPC框架。
RPC(Remote Procedure Call Protocol)远程过程调用协议。一个通俗的描述是:客户端在不知道调用细节的情况下,调用存在于远程计算机上的某个对象,就像调用本地应用程序中的对象一样。比较正式的描述是:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。那么我们至少从这样的描述中挖掘出几个要点:
那么上面的描述情况可以用下图表示:
当然,上图是作为RPC的调用者所观察到的现象(而实际情况是客户端或多或少的还是需要知道一些调用RPC的细节)。但是我们是要讲解RPC的基本概念,所以RPC协议内部是怎么回事就要说清楚:
在物理服务器性能相同的情况下,以下几个因素会对一款RPC框架的性能产生直接影响:
后文中,我会花一篇文章的篇幅介绍Apache Thrift RPC框架的使用和Thrift 框架区别于其他RPC框架的技术特点。然后我们谈谈在大型系统中,针对众多RPC服务这种情况,如何有效的对RPC服务进行管理。我们首先谈谈解决思路,然后试着自己解决一下这个问题。最后我们介绍Dubbo分布式服务框架,看看Dubbo是如何解决这个问题的。