Hetty源碼分析

研究下一個叫做Hetty的開源rpc框架,很簡單,但對於編寫類似的框架很有幫助,今天將思路簡單整理一下。

Hetty源碼在http://www.oschina.net/p/hetty,它結合了netty+hessian+reflectasm。netty做io框架,線程池處理io請求,使用hessian做rpc通信,真正的方法調用使用預先由reflectasm生成好的字節碼,執行效率要比反射高很多。

雖然是個小框架,但很好的體現了服務初始化與運行分離的設計模式。

所有配置都在hetty.properties中,啓動時讀取文件,將線程池配置,用戶名,密碼,服務配置文件,用戶名和密碼是作者對服務安全的理解,某一個服務可以自由配置爲特定用戶發佈,其他用戶。

初始化:(HettyConfig,ServiceHandler,SecurityHandler,MetaDataProcessor)

1.將xml配置解析成service,由servcieHandler保存,service包含serviceProvider,其中包含了真實的服務對象和通過reflectAsm處理後的對象,這樣運行時直接調用servciehandler即可。

2. 初始化ServiceMetaData,ServiceMetaData是hessian service代理類,包含接口對象和實際對象

3.啓動netty服務,此時HettyHandler作爲netty生命週期鏈路的channelHandler被加載,複寫的messageReceived方法接收請求事件。

hetty運行部分的服務端代碼就糅合了netty和hessian,不多贅述。客戶端代碼沒有給出,其實簡單的hessian客戶端即可,但如果作爲一個完整的框架客戶端最好也支持可配置(畢竟服務端是可配的),同時我想嵌入spring也是有必要的。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章