序:RPC就是使用socket告訴服務(wù)端我要調(diào)你的哪一個(gè)類的哪一個(gè)方法然后獲得處理的結(jié)果。服務(wù)注冊(cè)和路由就是借助第三方存儲(chǔ)介質(zhì)存儲(chǔ)服務(wù)信息讓服務(wù)消費(fèi)者調(diào)用。然我們自己動(dòng)手從0開始寫一個(gè)rpc功能以及實(shí)現(xiàn)服務(wù)注冊(cè),動(dòng)態(tài)上下線,服務(wù)路由,負(fù)載均衡。

RPC即遠(yuǎn)程過程調(diào)用,它的實(shí)現(xiàn)方式有很多,比如webservice等??蚣苷{(diào)多了,煩了,沒激情了,我們就該問自己,這些框架的作用到底是什么,來找回當(dāng)初的激情。
一般來說,我們寫的系統(tǒng)就是一個(gè)單機(jī)系統(tǒng),一個(gè)web服務(wù)器一個(gè)數(shù)據(jù)庫服務(wù),但是當(dāng)這單臺(tái)服務(wù)器的處理能力受硬件成本的限制,是不能無限的提升處理性能的。這個(gè)時(shí)候我們使用RPC將原來的本地調(diào)用轉(zhuǎn)變?yōu)檎{(diào)用遠(yuǎn)端的服務(wù)器上的方法,給系統(tǒng)的處理能力和吞吐量帶來了提升。
RPC的實(shí)現(xiàn)包括客戶端和服務(wù)端,即服務(wù)的調(diào)用方和服務(wù)的提供方。服務(wù)調(diào)用方發(fā)送rpc請(qǐng)求到服務(wù)提供方,服務(wù)提供方根據(jù)調(diào)用方提供的參數(shù)執(zhí)行請(qǐng)求方法,將執(zhí)行的結(jié)果返回給調(diào)用方,一次rpc調(diào)用完成。

  先讓我們利用socket簡(jiǎn)單的實(shí)現(xiàn)RPC,來看看他是什么鬼樣子。

原文和作者一起討論:http://www.cnblogs.com/intsmaze/p/6058765.html

可接網(wǎng)站開發(fā),java開發(fā)。

新浪微博:intsmaze劉洋洋哥

微信:intsmaze

服務(wù)端代碼如下

服務(wù)端的提供服務(wù)的方法