springcloud是基於springboot實現的一套微服務框架,包括eureka、ribbon、hystrix、feign、zuul等。
eureka:註冊中心
要管理分布式環境下的各個spring boot微服務,必然存在服務的註冊問題。所以我們先從服務的註冊談起。既然是註冊,必然有個管理註冊中心的伺服器,各個在spring cloud管理下的spring boot應用就是需要註冊的client。
ribbon:負載均衡
顧名思義,不用解釋。
hystrix:起到自我保護的作用
解決的問題:雪崩問題(比如生產汽車,乙個零件不能使用,其他的都要等待這個零件修復好才能使用,這樣的話會導致整個工廠陷入等待的狀態,陷入癱瘓)
方法:執行緒隔離,服務熔斷(降級)
意思:把每個功能的執行緒進行隔離,這樣的話可以保證乙個功能失敗的話其他功能還能繼續使用;然後的話如果執行緒池已滿或者請求超時的話,返回乙個友好的提示資訊(比如連線失敗)。
熔斷的狀態:開啟、關閉、半開啟
關閉:伺服器的熔斷狀態是關閉的,所有請求正常訪問
開啟:所有請求會被降級,hystric會對請求情況進行比較,當一定時間內失敗請求百分比打到乙個值時會觸發熔斷,預設的值是50%
半開啟:關閉的狀態不是永久的,關閉後會進入休眠時間(預設5秒),隨後熔斷器進入半開啟狀態,此時會釋放部分請求通過,如果都是健康的話熔斷器不會開啟,否則將會開啟。
circuitbreaker.requestvolumethreshold:觸發熔斷的最小次數,預設20
circuitbreaker.errorthresholdpercentage:觸發熔斷的失敗請求最小佔比,預設50%
circuitbreaker.sleepwindowinmilliseconds:休眠時長,預設5000毫秒
feign:宣告式服務呼叫,也就遠端呼叫。
zuul:服務的閘道器,可以進行攔截等操作。
springcloud的config元件使用
一 config元件支援兩種配置檔案獲取方式 springcould搭建的微服務的配置檔案的獲取方式有兩種。它支援配置服務放在配置服務的記憶體中 即本地 也支援放在遠端git倉庫中或者本地資料來源。在spring cloud config 元件中,分兩個角色,一是config server,二是co...
Springcloud常用元件
一 eureka netfix下 雲端服務發現,乙個基於 rest 的服務,用於定位服務,以實現雲端中間層服務發現和故障轉移。二 spring cloud config spring下 配置管理工具包,讓你可以把配置放到遠端伺服器,集中化管理集群配置,目前支援本地儲存 git以及subversion...
Springcloud元件介紹
springcloud是基於springboot基礎之上開發的微服務框架,springcloud是一套目前非常完整的微服務解決方案框架,其內容包含服務治理 註冊中心 配置管理 斷路器 智慧型路由 微 控制匯流排 全域性鎖 分布式會話等。springcloud包含眾多的子專案 eureka 服務治理 ...