學習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類物件以及...