Spring Cloud的設計理念是Integrate Everything,即充分利用現有的開源組件,數據庫
在它們之上設計一套統一的規範/接口使它們可以接入Spring Cloud體系而且可以無縫切換底層實現。緩存
中間件向下屏蔽異構的硬件、軟件、網絡等計算機資源,向上提供應用開發、運行、維護等全生命週期的安全
統一環境與管理,屬於承上啓下的中間層。中間件本質上能夠歸屬爲技術構架,常見的中間件分別是服務
網絡
治理中間件(如,Dubbo)、配置中心、全鏈路監控、分佈式事務、分佈式定時任務、消息中間件、API網關、架構
分佈式緩存、數據庫中間件。負載均衡
Spring Cloud 是一系列中間件合集,提供了一套完整的微服務解決方案。運維
服務治理中間件包括服務註冊與發現、服務路由、負載均衡、自我保護、豐富的治理管理機制等功能。分佈式
其中服務路由包括服務上下線、在線測試、機房就近選擇、A/B測試、灰度發佈等。負載均衡支持根據微服務
目標狀態和目標權重進行負載均衡。自我保護服務降級、流量監控。測試
Spring Cloud 目前支持:
1)Euraka、Zookeeper、Consul做爲註冊中心;
2)Hystrix進行熔斷自我保護;
3)Ribbon進行負載均衡;
在分佈式系統中,因爲存在多個實例,須要分別管理每一個具體服務工程中的配置,
上線須要準備Check List並逐個檢查每一個上線服務是否正確。在系統上線後一旦
修改某個配置,就須要重啓服務。這樣開發管理至關麻煩。所以咱們須要把分佈式
系統中的配置信息抽取出來統一管理,這個管理的中間件稱爲配置中心。配置中心
應該具有的功能,分別是支持各類複雜的配置場景,與公司的運維體系和權限管理
體系集成,各類兼容支持。Spring Cloud Config 是Spring Cloud生態圈中的配置中心中間件。
AIP Gateway,是出如今系統邊界上一個面向API的、串行集中式的強管控服務,這裏的邊界是企業
IT系統的邊界,能夠理解爲企業級防火強,主要起到隔離外部訪問與內部系統的做用。網關在微服務架構中的位置:
做爲一個網關中間件,至少應該具有以下四個功能:
1)統一接入功能:
2)協議適配功能:
3)流量管控功能:
4)安全防禦;
Spring Cloud 第一代網關Zuul, 第二代網關Gateway。
在微服務架構中,分散在每一個服務下的日誌信息不利於問題的排查定位問題發生的根本緣由。
此時,就能夠了利用全鏈路監控中間件收集、彙總與分析日誌信息,進行可視化展現和監控告警。
全鏈路監控中間件應具有以下功能:
1)定位慢調用:包括慢Web服務、慢REST或RPC服務、慢SQL;
2)定位各類錯誤:包括4XX、5XX、Service Error;
3)定位各類異常:
4)展示依賴和拓撲:
5)trace條用鏈:
6)應用警告: