Spring Cloud 學習筆記

2022-09-17 23:51:12 字數 2296 閱讀 4995

spring cloud學習筆記

系統架構:集中式架構,垂直拆分,分布式服務,服務治理,微服務

集中式架構:把所有功能集中部署,低成本,但無法適用於稍複雜的系統

垂直拆分:通過將每個業務功能拆分來實現流量分擔,每個模組也可單獨優化且方便水平擴充套件,但會有很多重複工作,影響開發效率。

分布式服務:抽取核心業務作為獨立服務,成為服務中心,並且將高復用率基礎服務抽取出來,作為獨立服務方便調取。提高了復用率的同時,因為呼叫關係會很複雜,所以增加了維護成本。

服務治理:soa(service oriented architecture)面向服務架構,每個服務完全獨立存在,通過網路整合並使用各個服務。可以自由使用其他公司提供的現成的服務,但其服務粒度較大,難以獲知其實現方式,導致運維,測試部署困難。所有服務通過乙個通路通訊,直接降低通訊速度。

微服務:即每個小服務獨立編寫執行,粒度較小,使用輕量級機制通訊如http api,保持最低限度的集中式管理。

特點:單一職責(每個服務對應單一職責),面向服務(每個服務只需對外暴露介面api),自治(服務間互相獨立,互不干擾)。

遠端呼叫方法

rpc:a計算機提供乙個 服務,b計算機可以像呼叫本地服務那樣呼叫a計算機的服務。所以較為便利,但相對死板。

http:對服務的提供和呼叫方 沒有任何技術限定,自由靈活,更符合微服務理念,可以使用當下熱門的rest風格,但訊息封裝相對臃腫。

spring cloud

spring cloud是spring旗下的專案之一,實現了諸如:配置管理,服務發現,智慧型路由,負載均衡,熔斷器,控制匯流排,集群狀態等等功能。

eureka:服務註冊中心,可以是乙個集群,負責註冊管理各個服務,通過心跳機制監控每個服務,一旦出現問題,將被剔除。消費者通過向eureka獲取服務列表來呼叫其中某個服務。eureka還提供了自我保護功能,一旦大部分(大概80%)的服務在短時間內失效(網路原因),eureka就會把當前例項的註冊資訊保護起來,不予剔除。生產環境下這很有效,保證了大多 數服務依然可用。但開發階段需要關閉。

spring cloud gateway:提供閘道器基本功能:安全、監控/埋點、限流等。為微服務架構提供簡單、有效且統一的api路由管理方式。他核心是一系列的過濾器,通過這些過濾器可以將客戶端傳送的請求**(路由)到對 應的微服務。 spring cloud gateway是加在整個微服務最前沿的防火牆和**器,隱藏微服務結點ip埠資訊, 從而加強安全保護。spring cloud gateway本身也是乙個微服務,需要註冊到eureka服務註冊中心。

gateway就是服務的統一入口。

ribbon:負載均衡, 當同一服務作為集群存在,ribbon提供了乙個負載均衡演算法,平衡各個服務節點的使用頻率。其預設提供了輪詢,隨機等演算法,我們也可以實現自定義負載均衡演算法。

feign:服務呼叫,優化了rest請求的呼叫,無需拼接url,拼接引數等 等操作,一切都交給feign去做,同時整合了ribbon, hystrix等功能。

hystrix:熔斷器,一旦某個服務出現了異常,許多使用者請求都需要呼叫的該服務,請求便會阻塞,使用者請求不會得到響應,則tomcat的執行緒不會釋放,導致伺服器資源耗盡,從而導致所有其它服務都不可用,形成 雪崩效應。

hystrix提供了兩種手段解決雪崩問題:

1.執行緒隔離:hystrix為每個依賴服務呼叫分配乙個小的執行緒池,如果執行緒池已滿呼叫將被立即拒絕,預設不採用排隊,加速失敗判定時間。 使用者的請求將不再直接訪問服務,而是通過執行緒池中的空閒執行緒來訪問服務,如果執行緒池已滿,或者請求超時,則會進行降級處理。

2.服務降級:優先保證核心服務。使用者的請求故障時,不會被阻塞,更不會無休止的等待或者看到系統崩潰,至少可以看到乙個執行結果(例如返回友好的提示資訊) 。

spring cloud config分布式配置中

為了方便配置檔案集中管理,需要分布式配置中心元件。在spring cloud中,提供了spring cloud config,它支援配置檔案放在配置服務的本地,也支援放在遠端git倉庫(github、gitee)。

可以通過配置spring cloud bus、mq並向其傳送相應post請求以達到不關閉服務更新其配置檔案。

SpringCloud學習筆記

筆記學習位址 筆記內容皆摘抄自以上部落格並親自驗證。在此感謝原博主分享 本文出自方志朋的部落格 環境 ide idea jdk8 a 服務的註冊與發現 1 spring eureka 服務端 實現springcloud的服務註冊與發現功能。1 springboot專案搭建 使用start.sprin...

筆記 spring cloud 學習筆記

1 spring cloud 是什麼 spring cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具 例如配置管理,服務發現,斷路器,智慧型路由,微 控制匯流排 分布式系統的協調導致了樣板模式,使用spring cloud開發人員可以快速地支援實現這些模式的服務和應用程式。他們將在任...

spring cloud學習筆記(1)

springcloud 分為幾個大的模組,包括服務 註冊 消費 配置等。spring cloud config 配置管理開發工具包,可以讓你把配置放到遠端伺服器,目前支援本地儲存 git以及subversion。enableconfigserver 就是把相關配置檔案.properties yml等...