序:RPC就是使用socket告訴服務端我要調(diào)你的哪一個類的哪一個方法然后獲得處理的結果。服務注冊和路由就是借助第三方存儲介質存儲服務信息讓服務消費者調(diào)用。然我們自己動手從0開始寫一個rpc功能以及實現(xiàn)服務注冊,動態(tài)上下線,服務路由,負載均衡。
RPC即遠程過程調(diào)用,它的實現(xiàn)方式有很多,比如webservice等??蚣苷{(diào)多了,煩了,沒激情了,我們就該問自己,這些框架的作用到底是什么,來找回當初的激情。
一般來說,我們寫的系統(tǒng)就是一個單機系統(tǒng),一個web服務器一個數(shù)據(jù)庫服務,但是當這單臺服務器的處理能力受硬件成本的限制,是不能無限的提升處理性能的。這個時候我們使用RPC將原來的本地調(diào)用轉變?yōu)檎{(diào)用遠端的服務器上的方法,給系統(tǒng)的處理能力和吞吐量帶來了提升。
RPC的實現(xiàn)包括客戶端和服務端,即服務的調(diào)用方和服務的提供方。服務調(diào)用方發(fā)送rpc請求到服務提供方,服務提供方根據(jù)調(diào)用方提供的參數(shù)執(zhí)行請求方法,將執(zhí)行的結果返回給調(diào)用方,一次rpc調(diào)用完成。
先讓我們利用socket簡單的實現(xiàn)RPC,來看看他是什么鬼樣子。
原文和作者一起討論:http://www.cnblogs.com/intsmaze/p/6058765.html
可接網(wǎng)站開發(fā),java開發(fā)。
新浪微博:intsmaze劉洋洋哥
微信:intsmaze
服務端代碼如下
服務端的提供服務的方法
package cn.intsmaze.tcp.two.s