dubbo系列----rpc初探

1 首先,什么是RPC

   RPC指的是远程服务调用。RPC 的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。rpc框架应该提供对于远程服务的透明化调用,不须要显式的区分本地or远程。说得通俗点,rpc应该可以作到像调用本地方法同样调用远程服务。浏览器

2 rpc调用方式

    rpc调用和方法调用同样,对于调用者来讲,分为同步和异步两种方式(同步异步自己就是一个很大的课题),这里不细说同步和异步的概念。服务器

    同步自没必要多说,正常的http调用,对于浏览器来讲,必须等到服务端响应才能继续(非AJAX)网络

    异步就是AJAX框架

    为何这里要说这个,在这里抛个砖,后续当咱们说到dubbo作SOA实践的时候,会讨论异步调用和同步调用对服务器吞吐能力的影响,这也能够参考个人另外一篇文章 http://my.oschina.net/zhenglingfei/blog/492883异步

3 RPC调用过程

上图来自文章1,给出了一个rpc框架的思路,其实不少的rpc框架都是这样作的,至少我所了解的是这样(dubbo以及我曾经公司的rpc框架)。通常的过程是本地应用调用远程API(存在于本地),实际的调用工做会由初始化时生成的本地代理执行,本地代理一般会根据根据一些既定策略(路由,容错等)选择实际的远程服务进行通讯,而服务端则是一个反向的过程分布式

而一个rpc框架,最主要涉及的几大模块就是远程API,调用代理,协议和编解码,网络传输服务,实际调用几个过程。后续分析dubbo时也会从这些方面入手。spa

参考文章建议

1.http://blog.csdn.net/mindfloating/article/details/39474123   对于rpc的描述很清楚.net

2.http://my.oschina.net/zhenglingfei/blog/492883代理

相关文章
相关标签/搜索