服務化框架設計實現(重造輪子,借事修人)

最近一段時間沒有工作,爲此也有大把的時間,可以做一些平時沒有時間做的事情,借事情來重建自己的知識體系,查漏補缺。

決定要利用這一段時間來實現一個服務化框架,實現得七七八八的時候再在github上開源。

(一)服務化框架特徵

1、支持無狀態、多版本

2、支持熱部署、自發現、fail over(自動發佈服務、自動發現服務、自動失敗轉移)

3、支持路徑跟蹤(統一的調用跟蹤信息,可還原)

4、支持可配置的負載均衡(採用默認負載均衡、可配置的負載均衡機制)

5、序列化協議可配置(默認、Java、Hessian、Google protocal buffer、thrift等幾種)

6、網絡框架可置換(自實現一個類似Hadoop IO框架、Mina等)

7、Spring配置支持(強限制)

8、服務可管理(調用支持配額制、支持自動降級、服務依賴跟蹤)

(二)基本功能(V0.1)

1、定義完整的消息格式

2、序列化支持Hessian

3、支持自實現的類似Hadoop I/O框架

4、支持無狀態、多版本

(三)設計概要

(1)遠程請求消息格式

元數據版本號(版本號變化可以支持不同的元數據格式)

請求元數據字節長度

請求參數字節長度

請求元數據定義:

接口名稱(服務提供方的接口名稱)

方法名(服務提供方的方法名稱)

版本號(同一方法支持多版本,不同邏輯)

協議名(參數序列化協議名稱,比如hessian)

父事物標識(調用來源,可以串起首發請求以及依賴的請求調用)

來源APP、來源IP(待定,支持流控與降級)

請求方法參數定義:

方法請求參數列表

(2)rpc概要

服務端支持NIO

客戶端使用阻塞方式,客戶端與服務端之間採用長連接

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