使用PHP構建服務治理框架
參考:
https://segmentfault.com/a/1190000010224335
https://segmentfault.com/a/1190000011581339
https://mengkang.net/1043.html
https://mengkang.net/1044.html
服務治理介紹:包含了服務提供者和服務消費者。服務提供者會把一些信息註冊到註冊中心,服務消費者從註冊中心拉取服務信息。註冊中心會根據服務狀態返回可用的服務。服務提供者和服務消費者都會將他們的元數據上報到監控中心。監控中心會記錄一些它們的一些請求數,負載等等數據。治理中心包括了接口路由的配置,方法路由配置,參數路由配置。服務治理包含了可視化的控制面板,在面板上可以看到有那些ip在提供這些服務,那些ip在消費這些服務等。
為什麽要使用服務治理?
1、業務拓展,降低服務之間的耦合,從功能上拆分
2、使用統一的接口協議(如使用http協議、dubbo協議、自定義協議)
3、分布式系統穩定性得到保障(自動返回可用的服務)
RPC
像本地調用方法一樣,調用遠程的方法(服務)。RPC包括了傳輸協議(如http協議)和編碼協議(如json)
代碼實現思路:
1、實現RPC
使用_call方法調用本地不存在的類方法,然後在_call方法裏面傳遞方法、參數發送http請求。
2、實現服務提供者
根據請求的服務名稱以及參數,返回json格式結果。
2、實現註冊中心
使用swoole啟動一個http server,用來處理添加服務和消費服務請求。添加服務時,可將服務信息(服務名稱、服務ip、服務端口、傳輸協議等)添加到數據庫記錄下來。消費請求時,根據服務名稱查詢服務信息。
4、自動發現(自動註冊)
服務啟動時向註冊中心發送要註冊/消費的服務,獲取服務信息。
以後不斷完善。
OK。
使用PHP構建服務治理框架