真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SpringCloud微服務架構簡介

最近閱讀了周立的《Spring Cloud與Docker》收獲挺大的,抽了一點時間對書中的內(nèi)容做了總結。方便大家快速了解什么是Spring Cloud,Spring Cloud主要的功能及Spring Cloud服務治理。如下博客的內(nèi)容都出自這本書。
什么是微服務

在高郵等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網(wǎng)站設計、網(wǎng)站建設 網(wǎng)站設計制作按需開發(fā)網(wǎng)站,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站制作,成都全網(wǎng)營銷推廣,成都外貿(mào)網(wǎng)站建設,高郵網(wǎng)站建設費用合理。

微服務架構風格是一種將一個單一應用程序開發(fā)為一組小型服務的方法,每個服務運行在自己的進程中,服務間通信采用輕量級通信機制(通常用HTTP資源API)。這些服務圍繞業(yè)務能力構建并且可通過全自動部署機制獨立部署。這些服務共用一個最小型的集中式的管理,服務可用不同的語言開發(fā),使用不同的數(shù)據(jù)存儲技術。
微服務架構應該具備以下特性:

  • 每個微服務可獨立運行在自己的進程里。

  • 一系列獨立運行的微服務共同構建起整個系統(tǒng)。

  • 每個服務為獨立的業(yè)務開發(fā),一個微服務只關注某個特定的功能,例如訂單管理,用戶管理等。

  • 微服務之間通過一些輕量的通信機制進行通信,例如通過RESTful API進行調(diào)用。

  • 可以使用不同的語言與數(shù)據(jù)存儲技術

  • 全自動部署機制

微服務架構的優(yōu)點
易于開發(fā)和維護

  • 一個微服務只會關注一個特定的業(yè)務功能,所以它業(yè)務清晰,代碼量較少。

單個微服務啟動較快

  • 單個微服務代碼量較少,所以啟動會比較快。

局部修改容易部署

  • 單體應用只要有修改,就得重新部署整個應用,微服務解決了這樣的問題。

技術棧不受限

  • 在微服務架構中,可以結合項目業(yè)務及團隊的特點,合理地選擇技術棧。

按需伸縮

  • 可根據(jù)需求,實現(xiàn)細粒度的擴展。

微服務架構面臨的挑戰(zhàn)
運維要求高

  • 更多的服務意味著更多的運維投入。

分布式固有的復雜性

  • 使用微服務架構是分布式系統(tǒng)。對于一個分布式系統(tǒng),系統(tǒng)容錯,網(wǎng)絡延遲,分布式事務等都會帶來巨大的挑戰(zhàn)。

接口調(diào)整成本高

  • 微服務之間通過接口進行通信。如果修改某一個微服務的API,可能所有使用了該接口的微服務都需要做調(diào)整。

重復勞動

  • 很多服務可能都會使用到相同的功能,而這個功能并沒有達到分解為一個微服務的程度,這個時候,可能各個服務都會開發(fā)這一功能,從而導致代碼重復。

微服務整體架構圖
Spring Cloud微服務架構簡介

服務注冊于發(fā)現(xiàn)

各個服務在啟動時,將自己的網(wǎng)絡地址等信息注冊到服務發(fā)現(xiàn)組件中,服務發(fā)現(xiàn)組件會存儲這些信息。

服務消費者可以從服務發(fā)現(xiàn)組件查詢服務提供者的網(wǎng)絡地址,并使用該地址調(diào)用服務提供者的接口。

各個微服務與服務發(fā)現(xiàn)組件使用一定機制(例如心跳)通信。服務發(fā)現(xiàn)組件如長時間無法與某為服務實例通信,就會注銷該實例。

微服務網(wǎng)絡地址發(fā)生變更(例如實例增減或者IP端口發(fā)生變化等)時,會重新注冊到服務發(fā)現(xiàn)組件。使用這種方式,服務消費者就無須人工修改提供者的網(wǎng)絡地址了。
Spring Cloud微服務架構簡介
Fegion實現(xiàn)聲明式REST調(diào)用
REST(Representational State Transfer ),用中文翻譯為"具象狀態(tài)傳輸"(也有:"代表性狀態(tài)傳輸")。是由 Roy Thomas Fielding博士 在2000年就讀加州大學歐文分校期間在學術論文中提出的一個術語。REST 定義了一組體系架構原則,您可以根據(jù)這些,包括使用不同語言編寫的客戶端如何通過 HTTP 處理和傳輸資源狀態(tài)。Feign是一個聲明式的WebService客戶端。使用Feign能讓編寫WebService客戶端更加簡單,它的使用方法是定義一個接口,然后在接口上添加注解,同時也支持JAX-RS標準的注解。Feign也支持可插拔式的編碼器和×××。SpringCloud對Feign進行了封裝,使其支持SpringMVC標準注解和HttpMessageConverters。Feign可以與Eureka和Ribbon組合使用以支持負載均衡。

使用Hystrix實現(xiàn)微服務的容錯處理
Hystrix是由Netflix開源的一個延遲和容錯庫,用于隔離訪問遠程系統(tǒng),服務或者第三方庫,防止級聯(lián)失敗,從而提升系統(tǒng)的可用性和容錯性。Hystrix主要通過以下幾點實現(xiàn)延遲和容錯。
包裹請求:使用HystrixCommand包裹對依賴的調(diào)用邏輯,每個命令在獨立線程中執(zhí)行。這使用到了設計模式中的“命令模式”。

  • 跳閘機制:當某服務的錯誤率超過一定閾值時,Hystrix可以自動或者手動跳閘,停止請求該服務一段時間。
  • 資源隔離:Hystrix為每個依賴都維護了一個小型的線程池(或者信號量)。如果該線程池已滿,發(fā)往該依賴的請求就被立即拒絕,而不是排隊等候,從而加速失敗判定。
  • 監(jiān)控:Hystrix可以近乎實時地監(jiān)控運行指標和配置變化,例如成功,失敗,超時以及被拒絕的請求等。
  • 回退機制:當請求失敗,超時,被拒絕,或當斷路器打開時,執(zhí)行回退邏輯?;赝诉壿嬁捎砷_發(fā)人員自行提供,例如返回一個缺省值。
  • 自我修復:斷路器打開一段時間后,會自動進入“半開”狀態(tài)。

如果沒有容錯處理,“基礎服務故障”導致“級聯(lián)故障”從而形成右邊的雪崩效應
Spring Cloud微服務架構簡介
使用Zuul構建微服務網(wǎng)關
Zuul是Netflix開源的微服務網(wǎng)關,它可以和Eureka,Ribbon,Hystrix等組件配合使用。Zuul的核心是一系列的過濾器,這些過濾器可以完成以下功能。

  • 身份認證與安全
  • 動態(tài)路由
  • 壓力測試
  • 負載分配
  • 靜態(tài)響應處理
  • 多區(qū)域彈性

Zuul大部分功能是通過過濾器實現(xiàn)的,如右圖所示。
Spring Cloud微服務架構簡介

使用Spring CloudConfig統(tǒng)一管理微服務配置
Spring Cloud Config支持在Git, SVN和本地存放配置文件,使用Git或者SVN存儲庫可以很好地支持版本管理,Spring默認配置是使用Git存儲庫。具有如下優(yōu)點:
集中管理配置:一個使用微服務架構的應用系統(tǒng)可能會包含成百上千個微服務,因此幾種管理配置是非常有必要的。
不同環(huán)境不同配置:例如,數(shù)據(jù)源配置在不同的環(huán)境(開發(fā),測試,預發(fā)布,生產(chǎn)等)中是不同的。
運行期間可動態(tài)調(diào)整:例如可根據(jù)各個微服務的負載情況,動態(tài)調(diào)整數(shù)據(jù)源連接池大小或熔斷閾值,并且在調(diào)整配置是不停止微服務。
配置修改后可自動更新。如配置內(nèi)容發(fā)生變化,微服務能夠自動更新配置。
Spring Cloud微服務架構簡介
Spring Cloud服務治理
注冊中心監(jiān)控
Spring Cloud微服務架構簡介
容錯處理監(jiān)控
Spring Cloud微服務架構簡介
微服務健康檢查
Spring Cloud微服務架構簡介
微服務調(diào)用追蹤
Spring Cloud微服務架構簡介


文章標題:SpringCloud微服務架構簡介
標題來源:http://weahome.cn/article/jsosoh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部