1.初始小型的項目採用單體結構,一臺服務器部署多個應用,關注點主要在ORM(對象關係模型)。html
2.隨着業務的增多,訪問的數據增大開始用多臺服務器部署多個應用,將大業務拆分紅小業務模塊,關注點在MVC(開發模式業務分層)。算法
3.當業務更多的時候,不少核心業務能夠服用,而且想要穩定核心業務,此時RPC(遠程服務)成爲關注點。apache
4.全部的業務模塊互相調用,交叉很嚴重,此時須要一個調度中心,統一管理服務的註冊與監聽,此時SOA(服務治理解決方案)成爲關注點服務器
基於上面第四點,亟需一個服務註冊與發現管理中心,統一管理全部的服務。dubbo 解決如下需求:架構
當服務愈來愈多時,服務 URL 配置管理變得很是困難,F5 硬件負載均衡器的單點壓力也愈來愈大。負載均衡
此時須要一個服務註冊中心,動態地註冊和發現服務,使服務的位置透明。並經過在消費方獲取服務提供方地址列表,實現軟負載均衡和 Failover,下降對 F5 硬件負載均衡器的依賴,也能減小部分紅本。分佈式
當進一步發展,服務間依賴關係變得錯蹤複雜,甚至分不清哪一個應用要在哪一個應用以前啓動,架構師都不能完整的描述應用的架構關係。 ide
這時,須要自動畫出應用間的依賴關係圖,以幫助架構師理清理關係。動畫
接着,服務的調用量愈來愈大,服務的容量問題就暴露出來,這個服務須要多少機器支撐?何時該加機器? code
爲了解決這些問題,第一步,要將服務如今天天的調用量,響應時間,都統計出來,做爲容量規劃的參考指標。其次,要能夠動態調整權重,在線上,將某臺機器的權重一直加大,並在加大的過程當中記錄響應時間的變化,直到響應時間到達閾值,記錄此時的訪問量,再以此訪問量乘以機器數反推總容量。
角色說明:
節點 | 角色說明 |
---|---|
Provider |
暴露服務的服務提供方 |
Consumer |
調用遠程服務的服務消費方 |
Registry |
服務註冊與發現的註冊中心 |
Monitor |
統計服務的調用次數和調用時間的監控中心 |
Container |
服務運行容器 |