更新時間:2021-09-29 08:06:58 來源:動力節點 瀏覽1398次
配置
服務發現
斷路器
路由和消息傳遞
API網關
追蹤
CI 管道和測試
Spring Cloud 配置組件為分布式系統中的外化配置提供服務器端和客戶端支持。我們可以使用配置服務器為所有環境中的應用程序管理外部屬性。Spring Cloud 配置服務器可以使用 Git、SVN(Apache Subversion)、文件系統和 Vault 來存儲配置。配置客戶端(微服務應用程序)在啟動時從服務器檢索配置客戶端。
服務發現是通過網絡自動檢測設備和服務。換句話說,服務發現是應用程序和微服務在分布式環境中的連接方式。服務發現實現包括:
在中央服務器維護地址的全局視圖。
連接到中央服務器的客戶端可以更新和檢索地址。
有兩種發現模式:客戶端發現和服務器端發現。
客戶端發現:在客戶端發現中,客戶端負責確定可用服務的網絡位置。客戶端使用負載平衡算法來選擇可用服務之一并發出請求。Netflix OSS是客戶端發現模式的一個示例。
服務器端發現:在服務器端發現中,客戶端通過負載均衡器向服務發出 HTTP 請求。負載均衡器聯系服務注冊中心并將每個請求路由到可用的服務實例。與客戶端發現類似,服務實例在服務注冊表中注冊和注銷。的AWS ELB(彈性負載均衡)是服務器端發現的一個例子。ELB 平衡來自互聯網的外部流量。
Netflix 創建了一個名為Hystrix的庫。它實現了斷路器模式。斷路器計算何時打開和關閉電路以及在發生故障時該怎么做。當所有服務在某個時刻出現故障時,斷路器會優雅地處理這些故障。斷路器具有三種狀態:OPEN、CLOSED和HALF-OPEN狀態。
CLOSED 狀態:如果斷路器處于 CLOSED 狀態并且所有調用都傳遞到供應商微服務。它沒有任何延遲地響應。
OPEN 狀態:斷路器返回錯誤調用而不執行函數。
HALF-OPEN 狀態:當函數執行超時時,電路變為 HALF-OPEN 狀態。它測試潛在的問題是否仍然存在。它是一種監測和反饋機制。它會嘗試調用供應商微服務以檢查其是否已恢復。如果對供應商的呼叫超時,則電路保持在OPEN狀態。如果調用返回成功,電路切換到CLOSED狀態。在HALF-OPEN狀態期間,斷路器將所有外部調用返回給服務并出現錯誤。
云應用程序由許多微服務組成,因此通信至關重要。Spring Cloud 支持通過消息或 HTTP 請求進行通信。路由使用Netflix Ribbon和Open Feign,而消息傳遞使用 Kafka 或 Rabbit MQ。
API Gateway 允許我們路由 API 請求(外部或內部)以連接服務。它還提供了一個用于在 Spring MVC 之上構建 API 網關的庫。它的目標是為他們提供跨領域的關注,例如安全和監控。
API網關的特點
基于 Spring 框架 5、項目反應器和 Spring Boot 2.0
能夠在任何請求的屬性上匹配路由
謂詞和過濾器特定于路由
Hystrix 斷路器集成
Spring Cloud Discovery 客戶端集成
易于編寫謂詞和過濾器
請求速率限制
路徑重寫
Spring Cloud 的其他功能是分布式跟蹤。跟蹤是從應用程序獲取數據的單個請求。跟蹤導致對各種微服務的請求數量呈指數級增長。
我們可以在我們的項目中添加Spring Cloud Sleuth庫來啟用跟蹤。Sleuth 負責記錄時間,用于延遲分析。我們可以將此時序導出到 Zipkin。
Zipkin 是一個分布式追蹤工具,專門用于分析微服務架構內部的延遲問題。它公開用于收集輸入數據的 HTTP 端點。如果我們需要在我們的項目中添加跟蹤,我們應該添加spring-cloud-starter-zipkin依賴項。
在微服務中,輸入的流量如此之大,所以我們不能只收集一定數量的數據。為此,Spring Cloud Sleuth 提供了一個采樣策略。采樣策略允許我們將多少輸入流量發送到 Zipkin 進行分析。要啟用此功能,我們必須添加spring-cloud-sleuth-stream依賴項。
Spring Cloud 管道是 Jenkins 和 Concourse 的一個自以為是的(自我重要的)管道,它為應用程序自動創建管道。在各種服務中構建、測試和部署對于成功的云原生應用程序至關重要。
Jenkins 管道提供了一組工具,旨在將簡單和更高級的交付管道建模為代碼。管道的定義被寫入一個名為 Jenkinsfile 的文本文件中。
管道有兩種語法:聲明式和腳本式管道。這些語法分為兩部分:步驟和階段。步驟是管道的基本部分,因為它們告訴 Jenkins 服務器要做什么。階段是管道的主要部分。階段在邏輯上將幾個步驟組合在一起,這些步驟顯示在管道的結果屏幕上。
如果想了解更多相關知識,大家不妨來關注一下動力節點的SpringCloud教程,教程內容全面,適合初學者的小白學習,希望對大家能有所幫助哦。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習