netty實現的RPC框架
阿新 • • 發佈:2018-12-20
自己手擼了一個nettyRPC框架,希望在這裡給有興趣的同學們做個參考。
要想實現nettyrpc需要了解的技術要點如下:
spring的自定義註解、spring的bean的有關初始化。
反射和動態代理的使用。
瞭解socket的使用。
瞭解zookeeper的使用。
瞭解nio原理。
瞭解netty的基本操作。
再瞭解了以上的技術要點後,就可以開始我們的自定義nettyrpc框架之旅了。
沒有操作過以上技術的同學也不用擔心,我前面的幾篇部落格都是介紹這幾個技術要點的,大家可以先去了解一下前面的技術再來構建框架。
我把這幾篇部落格的程式碼和這次框架的原始碼都上傳到了github上,全部封裝在了一個專案裡,大家可以克隆到自己的本地學習。
在這裡我不想講很多的原理,需要學習框架原理的可以自己去查詢相關的資料學習,我主要是給大家擼框架的程式碼實現幫助。
首先我們的框架架構主要如下所示:
client是rpc客戶端的實現,這個是框架裡的客戶端實現,不是操作框架的客戶端,大家一定要弄明白;common包主要是封裝了一些常量;proxy包是代理和反射的使用;registry包是服務的註冊和發現;server是服務端的實現;utils主要是編碼和序列化有關的操作。
框架開發完,我們完成呼叫框架的客戶端和服務端的開發。
RpcBootstrap啟動伺服器,ClientTest啟動客戶端
服務端啟動結果:
客戶端結果:
對框架程式碼有不懂得,可以先去學習前面的幾篇部落格,原始碼都在github上有。