自定義RPC框架實戰 一 設計思路

2021-09-01 11:27:51 字數 779 閱讀 1665

學習rpc原理,鍛鍊自己設計能力。

服務註冊

服務發現

定時接收客戶端服務心跳

容錯處理

集群負載均衡

位址路由

服務監控

獲取服務

rpc(即remote procedure call,遠端過程呼叫),指的是對網路上另外乙個計算機上的,某段特定的函式**的呼叫。

首先得寫乙個註冊中心服務,主要功能如下:

(1) 儲存服務例項列表。

(2) 負載均衡。

(3) 服務例項健康監測。可動態增減服務提供者。

(1) 服務提供者向註冊中心註冊其提供的服務。

(2) 服務消費者向註冊中心獲取服務提供者位址列表,通過負載均衡的演算法選擇服務提供者。

a服務要呼叫b服務中的介面,直連也可以,通過註冊中心也可以,如果是後者的話首先b服務要在註冊中心註冊服務,得告訴a服務以下資訊:

監控服務的健康狀態,是否可用。每個服務每分鐘向註冊中心傳送心跳,註冊中心在1分鐘內收到心跳,視為正常,超過1分鐘沒收到心跳,視為服務宕掉了,先從服務列表中剔除掉該例項,剔除後,呼叫者呼叫服務時,負載演算法時 就不會把該服務例項算進去了。等服務健康後,再加入進來。

負載均衡策略,可以每個服務自己控制,每個服務裡都得有個監控器,監控所有服務是否健康,缺點是會有點沉重,好處一是可以把壓力分攤到每個伺服器上。二是不依賴註冊中心, 自己就可以找到對應的服務,就算服務掛了,不影響其他服務的rpc互動。

這個監控器也可以放在註冊中心,單獨管理。

// todo 在實現過程中,會不斷完善此設計文件。

自定義RPC框架思路筆記

編寫公共專案 自定義fastjson序列化協議,存放介面 public class jsonserializer implements serializer override public t deserialize class clazz,byte bytes public class rpcde...

一 自定義持久層框架

public static void main string args system.out.println user catch exception e finally catch sqlexception e if preparedstatement null catch sqlexceptio...

自定義MVC框架

第一步 用乙個容器 或者servlet類 filter類 接受請求 一般在web.xml中進行配置,攔截請求到actionservlet 控制servlet 中。第二步 分割請求路徑 得到請求訪問類以及訪問方法的標示字串 解析請求的url路徑,讀取配置檔案。第三步 通過字串獲得action類物件以及...