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代理

相關文章
相關標籤/搜索