Spring Cloud學習(一)

来源:https://www.cnblogs.com/wadmwz/archive/2019/03/13/10516458.html
-Advertisement-
Play Games

Spring Cloud是什麼? Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發便利性巧妙地簡化了分散式系統基礎設施的開發,如服務發現註冊、配置中心、消息匯流排、負載均衡、斷路器、數據監控等,都可以用Spring Boot的開發風格做到一鍵啟動和部署。Spring並 ...


Spring Cloud是什麼?

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發便利性巧妙地簡化了分散式系統基礎設施的開發,如服務發現註冊、配置中心、消息匯流排、負載均衡、斷路器、數據監控等,都可以用Spring Boot的開發風格做到一鍵啟動和部署。Spring並沒有重覆製造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,通過Spring Boot風格進行再封裝屏蔽掉了複雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分散式系統開發工具包。

Spring Cloud 與 微服務

微服務的概念起源於: http://www.cnblogs.com/liuning8023/p/4493156.html(英文: https://martinfowler.com/articles/microservices.html)

微服務架構模式的目的是將大型的,複雜的,長期運行的應用程式構建為一組相互配合的服務,每個服務都可以很容易進行局部改良.微服務的意思是每個服務應該足夠小,小是指業務邏輯上的小.微服務的形象表示:

micro

  • X軸: 水平擴展, 即在負載均衡伺服器後增加多個運行實例
  • Z軸: 資料庫的擴展, 即分庫分表
  • Y軸: 功能分解, 即將不同職能的模塊劃分成不同的服務

Spring Cloud技術概覽

Spring Cloud

主要是下麵內容:

  • 服務治理
  • 分散式鏈路監控
  • 消息組件
  • 配置中心
  • 安全控制
  • 命令行工具
  • 集群工具

每個模塊又是由不同組件結合來解決,其實學習Spring Cloud就是學會Spring Boot整合這些組件,學會使用,深入理解就好.

Eureka

Eureka是Netflix開源的一款提供服務註冊和發現的產品,提供了完整的Service Registry 和 Service Discovery實現, 是Spring Cloud體系中最重要最核心的組件之一. Eureka相當於圖書館管理員,添加書需要到我這說一下,取書也得到我這報備.所以說Eureka在生產環境中一般是集群,至少兩個,否則Eureka一旦掛掉將會影響整個服務.

Eureka就自動具有註冊中心,負載均衡,故障轉移的功能.

Hystrix

熔斷器,容錯管理工具,旨在通過熔斷機制控制服務和第三方節點,從而對延遲和故障提供更強大的容錯能力.也就是微服務中多個服務層調用,基礎服務的故障可能會導致級聯故障,造成整個系統不可用,就是服務血崩效應,Hystrix就是在這種場景下來做故障隔離,Hystrix 會在某個服務連續調用 N 次不響應的情況下,立即通知調用端調用失敗,避免調用端持續等待而影響了整體服務。Hystrix 間隔時間會再次檢查此服務,如果服務恢復將繼續提供服務。

服務雪崩效應是一種因"服務提供者"不可用導致"服務消費者"的不可用,並且將不可用逐漸放大的過程.

zuul

zuul路由也是微服務架構不可或缺的一部分,提供動態路由,監控,彈性,安全等的邊緣服務.具體作用就是服務轉發,接受並轉發所有內外部的客戶端調用,使用 Zuul 可以作為資源的統一訪問入口. zuul相當於門衛,對請求進行一些校驗等.

Spring Cloud Config

配置中心,把配置文件放在遠程伺服器,集中化管理集群配置,支持本地存儲,git以及svn.

這個組件是解決分散式系統的配置管理方案,包含了client和server兩個部分,Server 提供配置文件的存儲、以介面的形式將配置文件的內容提供出去,Client 通過介面獲取數據、並依據此數據初始化自己的應用。

當所有配置存儲在配置中心時,配置中心也成為一個很重要的組件,所以一般也建議做集群,支持配置中心高可用.

Spring Cloud Bus

事件,消息匯流排,用於在集群中傳播狀態變化,可與Spring Cloud Config聯合支持熱部署,也就是改變配置文件提交到版本庫時,會自動觸發對應實例的Refresh.

Spring Cloud Sleuth

日誌收集工具包,封裝了Dapper和log-based追蹤以及Zipkin和HTrace操作,為SpringCloud應用實現了一種分散式追蹤解決方案。

還有更多的組件,使用的時候再說.


組件的配套使用

組件

  • Eureka負責服務的註冊和發現,很好將各個服務連接起來
  • Hystrix負責監控服務之間的調用情況,連續多次失敗進行熔斷保護
  • Hystrix dashboard,Turvine負責監控Hystrix的熔斷情況,給予圖形化展示(可以理解為圖形化工具)
  • Spring Cloud Config提供統一的配置中心服務
  • 配置文件發生改變時,Spring Cloud Bus負責通知各個服務去獲取最新的配置信息(實現熱部署)
  • 所有對外的請求和服務都通過zuul進行轉到,起到API網關的作用
  • sleuth + Zipkin將所有請求數據記錄下來,方便進行後續分析.

參考:純潔的微笑(http://www.ityouknow.com/springcloud/2017/05/01/simple-springcloud.html) 和 Wind MT(https://windmt.com/2018/04/14/spring-cloud-0-microservices/)


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 插槽用於內容分發,存在於子組件之中。 插槽作用域 父級組件作用域為父級,子級組件作用域為子級,在哪定義的作用域就在哪。 子組件之間的內容是在父級作用域的,無法直接訪問子組件裡面的數據。 插槽元素 <slot></slot> 或 <slot name="名稱">預設值</slot> 1:如果定義了sl ...
  • 原文地址 本文主要講述了使用JavaScript創建對象的幾種方式,分別是傳統的Object構造函數、對象字面量、工廠模式、構造函數模式、原型模式、組合模式,以及es6的class定義類。然後從babel的角度探究es5與es6創建對象的區別。 1.創建對象的幾種方式 (1).Object構造函數和 ...
  • 推薦8款最好用的前端開發工具供美工或者前端開發人員使用,當然若你是NB的全棧工程師也可以下載使用。 ...
  • 1.代碼 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 5 <title>OpenLayers</title> 6 <link re ...
  • 我們都都知道kafka的消費組要rebalance,需要觸發以下3個條件之一: 組成員變更,比如新consumer加入組,或已有consumer主動離開組,再或是已有consumer崩潰時則出發rebalance. 組訂閱topic數發生變更,比如使用基於正則表達式的訂閱,當匹配正則表達式的新top ...
  • 一、如何安裝Angular 在文件夾中打開cmd,輸入nmp init創建一個package.json。這個可以一路回車跳過(如果沒有特別要註明)。nmp是前臺的包,用於管理後臺。成功創建package.json後再輸入nmp install bower -g,bower推薦安裝到全局,這裡bowe ...
  • 近來經常用到分散式事務,這裡總結一下,我們目前的使用場景基本都是採用事務消息方式。那麼說到分散式不得不談的CAP CAP理論概述 一個分散式系統最多只能同時滿足一致性(Consistency)、可用性(Availability)和分區容錯性(Partition tolerance)這三項中的兩項。 ...
  • 前言 以前總是採用很Low的方式太同一臺伺服器上部署多個Web應用,步驟是這樣的:Copy Tomcat目錄-->更改conf/server.xml三個埠號 >部署war包 >分別啟動訪問。 這樣是最簡單的方式,但事實上是不推薦的,因為如果伺服器資源有限,需要部署的應用數目一旦增加,會給伺服器帶來 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...