SpringCloud入門學習(Java分佈式基礎)

你好我是辰兮,很高興你能來閱讀,本篇文章是關於SpringCloud分佈式微服務框架的學習,初識SpringCloud接下來會整理更多相關知識,分享獲取新知,大家一起進步。



一、Spring Cloud簡介

Spring Cloud爲開發人員提供了快速構建分佈式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智能路由,微代理,控制總線)。分佈式系統的協調導致了樣板模式, 使用Spring Cloud開發人員可以快速地支持實現這些模式的服務和應用程序。他們將在任何分佈式環境中運行良好,包括開發人員自己的筆記本電腦,裸機數據中心,以及Cloud Foundry等託管平臺。


Spring Cloud是一個基於Spring Boot實現的雲原生應用開發工具,它爲基於JVM的雲原生應用開發中涉及的配置管理、服務發現、熔斷器、智能路由、微代理、控制總線、分佈式會話和集羣狀態管理等操作提供了一種簡單的開發方式。

  • ①首先,儘管Spring Cloud帶有“Cloud”這個單詞,但它並不是雲計算解決方案,而是在SpringBoot基礎之上構建的,用於快速構建分佈式系統的通用模式的工具集。
  • ②其次,使用Spring Cloud開發的應用程序非常適合在Docker和PaaS(比如Pivotal Cloud Foundry)上部署,所以又叫做雲原生應用(Cloud Native Application)。雲原生可以簡單地理解爲面向雲環境的軟件架構。

特性 Spring Cloud的核心功能:

Spring Cloud專注於提供良好的開箱即用經驗的典型用例和可擴展性機制覆蓋。

  • 分佈式/版本化配置
  • 服務註冊和發現
  • 路由
  • service - to - service調用
  • 負載均衡
  • 斷路器
  • 分佈式消息傳遞

二、Spring Cloud核心子項目

Spring Cloud Netflix:核心組件,可以對多個Netflix OSS開源套件進行整合,包括以下幾個組件:

  • Eureka:服務治理組件,包含服務註冊與發現
  • Hystrix:容錯管理組件,實現了熔斷器
  • Ribbon:客戶端負載均衡的服務調用組件
  • Feign:基於Ribbon和Hystrix的聲明式服務調用組件
  • Zuul:網關組件,提供智能路由、訪問過濾等功能
  • Archaius:外部化配置組件

Spring Cloud Config:配置管理工具,實現應用配置的外部化存儲,支持客戶端配置信息刷新、加密/解密配置內容等。

Spring Cloud Bus:事件、消息總線,用於傳播集羣中的狀態變化或事件,以及觸發後續的處理。

Spring Cloud Security:基於spring security的安全工具包,爲我們的應用程序添加安全控制。

Spring Cloud Consul :封裝了Consul操作,Consul是一個服務發現與配置工具(與Eureka作用類似),與Docker容器可以無縫集成。

在這裏插入圖片描述

通過這張圖,我們來了解一下各組件配置使用運行流程:

  • 1、請求統一通過API網關(Zuul)來訪問內部服務.
  • 2、網關接收到請求後,從註冊中心(Eureka)獲取可用服務
  • 3、由Ribbon進行均衡負載後,分發到後端具體實例
  • 4、微服務之間通過Feign進行通信處理業務
  • 5、Hystrix負責處理服務超時熔斷
  • 6、Turbine監控服務間的調用和熔斷相關指標

三、Spring Cloud面試常考

(1)請說說什麼是 spring cloud?

spring cloud 是一系列框架的有序集合。它利用 spring boot 的開發便利性巧妙地簡化了分佈式系統基礎設施的開發,如服務發現註冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,都可以用 spring boot 的開發風格做到一鍵啓動和部署。

(2)spring cloud 斷路器的作用是什麼?

在分佈式架構中,斷路器模式的作用也是類似的,當某個服務單元發生故障(類似用電器發生短路)之後,通過斷路器的故障監控(類似熔斷保險絲),向調用方返回一個錯誤響應,而不是長時間的等待。這樣就不會使得線程因調用故障服務被長時間佔用不釋放,避免了故障在分佈式系統中的蔓延。

(3)spring cloud 的核心組件有哪些?

  • Eureka:服務註冊於發現。
  • Feign:基於動態代理機制,根據註解和選擇的機器,拼接請求 url 地址,發起請求。
  • Ribbon:實現負載均衡,從一個服務的多臺機器中選擇一臺
  • Hystrix:提供線程池,不同的服務走不同的線程池,實現了不同服務調用的隔離,避免了服務雪崩的問題。
  • Zuul:網關管理,由 Zuul 網關轉發請求給對應的服務。

在這裏插入圖片描述
(4)未完待續


後續繼續跟新相關知識…


The best investment is to invest in yourself

在這裏插入圖片描述

2020.06.16 記錄辰兮的第83篇博客

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章