1.架構(gòu)
1.1 服務(wù)角色介紹
Provider:暴露服務(wù)的服務(wù)提供方。
Consumer:調(diào)用遠(yuǎn)程服務(wù)的服務(wù)消費方。
Registry:服務(wù)注冊和服務(wù)發(fā)現(xiàn)的注冊中心,存放服務(wù)提供方的服務(wù)發(fā)布信息,調(diào)用地址,協(xié)議類型等谍夭。
Monitor:統(tǒng)計服務(wù)的調(diào)用次數(shù)和調(diào)用事件,進行分析和統(tǒng)計服務(wù)的壓力等性能問題憨募。
Container:服務(wù)運行的容器紧索,也可以理解為:RPC服務(wù)器。
1.2 服務(wù)調(diào)用關(guān)系
服務(wù)容器Container:負(fù)責(zé)區(qū)解決啟動Rpc服務(wù)器和加載服務(wù)提供信息和啟動服務(wù)提供者馋嗜。
服務(wù)提供者Provider:負(fù)責(zé)向注冊中心Registry組件去注冊自己的提供的服務(wù)齐板,并且會在內(nèi)存中統(tǒng)計服務(wù)調(diào)用次數(shù)和服務(wù)調(diào)用時間,每分鐘推送服務(wù)定時推送信息到健康中心葛菇。
服務(wù)消費者Consumer:負(fù)責(zé)向注冊中心Registry組件去消費獲取自己所需要的服務(wù)甘磨,根據(jù)軟負(fù)載均衡進行構(gòu)建調(diào)用服務(wù)方案,如果調(diào)用失敗眯停,則采用failover機制济舆,切換為其他服務(wù)提供者的服務(wù)。并且會在內(nèi)存中統(tǒng)計服務(wù)調(diào)用次數(shù)和服務(wù)調(diào)用時間莺债,每分鐘推送服務(wù)定時推送信息到健康中心滋觉。
注冊中心Registry:負(fù)責(zé)向返回服務(wù)提供者列表給服務(wù)消費者签夭,建立長連接機制進行構(gòu)建推送服務(wù)消費者實時更新服務(wù)信息。
1.3 服務(wù)連通性
(1)服務(wù)提供者和消費者:服務(wù)注冊中心和服務(wù)消費中心只有在啟動的時候椎侠,與注冊中心交互第租,注冊服務(wù)和獲取訂閱服務(wù)等。
(2)注冊中心采用的目錄服務(wù)JNDI協(xié)議進行構(gòu)建服務(wù)的查找和注冊功能我纪。
(3)服務(wù)注冊中心和消費中心慎宾、服務(wù)注冊中心三者之間均為長連接、監(jiān)控中心除外浅悉。
(4)服務(wù)注冊中心通過長連接進行交互服務(wù)提供者趟据,服務(wù)提供者出現(xiàn)宕機,注冊中心术健,會立刻通知服務(wù)消費著汹碱,服務(wù)消費者會即可進行服務(wù)降級和服務(wù)的恢復(fù)
(5)服務(wù)注冊中心、監(jiān)控中心宕機荞估,不會影響服務(wù)消費著和提供者咳促,會有內(nèi)部緩存列表進行服務(wù)調(diào)用。
(6)服務(wù)提供者和服務(wù)消費著可以進行直接調(diào)用泼舱,所以服務(wù)監(jiān)控中心和服務(wù)注冊中心等缀,不是必需枷莉。
(7)服務(wù)提供者會每分鐘定時匯報服務(wù)調(diào)用時間和次數(shù)到監(jiān)控中心娇昙、同時在啟動的時候注冊服務(wù)信息到注冊中心。
(8)服務(wù)消費者笤妙,會在啟動的時候冒掌,獲取注冊中心相關(guān)的服務(wù)信息列表,然后根據(jù)SLP技術(shù)蹲盘,進行服務(wù)負(fù)載均衡股毫,獲取其中一個服務(wù)的信息調(diào)用服務(wù)。同時每分鐘會定時上報服務(wù)調(diào)用時間到服務(wù)監(jiān)控中心召衔。
1.4 服務(wù)健壯性
健康中心宕機只會影響數(shù)據(jù)丟失的完整性铃诬,不會出現(xiàn)不可用的情況。
注冊中心具有failover機制進行故障切換功能對等集群苍凛。
服務(wù)提供和服務(wù)消費趣席,可以通過本地緩存進行繼續(xù)通信,即使注冊中心全部宕機醇蝴,服務(wù)提供者為無狀態(tài)化服務(wù)宣肚,即使服務(wù)宕機不影響其他服務(wù)使用,如果全部掛了悠栓,則客戶端消費會進行無限次嘗試重新連接調(diào)用霉涨,直到服務(wù)提供者恢復(fù)按价。
1.5 服務(wù)伸縮性
注冊中心可以長連接時時更新服務(wù)提供者到服務(wù)列表中。
其中有幾點:
服務(wù)Deployer笙瑟,可以自動部署服務(wù)本地代理楼镐。
服務(wù)Repository,倉庫基于存儲服務(wù)的開發(fā)包往枷。
Scheduler調(diào)度中心:基于服務(wù)的壓力鸠蚪,動態(tài)增減服務(wù)提供實例。
admin:統(tǒng)一控制臺师溅。