SpringCloud 分布式知識學習

2021-10-02 11:44:05 字數 1163 閱讀 8404

@target(elementtype.type)

@retention(retentionpolicy.runtime)

@documented

@inherited

@enablediscoveryclient

@enablecircuitbreaker

}

乙個註解引用三個註解,標示這是springboot應用  註冊中心客戶端、開啟熔斷器。

業務場景:使用者中心需要呼叫使用者服務、商品服務、優惠券服務等等,開啟一次使用者中心頁面需要請求3個服務介面。

使用者中心依賴使用者服務、商品服務、優惠券等服務。大流量打過來,使用者中心不斷的建立執行緒,遠端呼叫三個服務。當優惠券服務(也可以其它服務)不可用時,使用者中心建立執行緒呼叫優惠券服務,執行緒hang住一陣,直到timeout。這些阻塞的執行緒導致應用使用者中心伺服器執行緒資源耗盡,應用掛掉,假死。

複述一遍:依賴的下游服務不可用,在大流量環境下導致前端服務都不可用。

hystrix 提供解決方案可以解決服務雪崩問題。提供了

服務熔斷也被稱為服務過載保護。

回到上乙個場景,使用者中心遠端呼叫優惠券服務,呼叫失敗達到一定次數後斷路器開啟。使用者中心將不發起遠端呼叫,直接提示優惠券服務異常這樣的錯誤資訊。返回錯誤的響應。一段時間後,斷路器會變成半開狀態,如果下乙個請求成功了,就關閉斷路器,反之就開啟斷路器。

-----  這是我對服務熔斷的理解,這裡的一定次數在hystrix 框架中是明確的可控制的。

hystrix 關鍵的三個引數

hystrix.command.default.circuitbreaker.requestvolumethreshold(當在配置時間視窗內達到此數量的失敗後,進行短路。預設20個)簡言之,10s內請求失敗數量達到20個,斷路器就會變成開啟狀態。

hystrix.command.default.circuitbreaker.sleepwindowinmilliseconds(短路多久以後開始嘗試是否恢復,預設5s)

hystrix.command.default.circuitbreake.errorthresholdpercentage(出錯百分比閾值,當達到此閾值後,開始短路。預設50%)

SpringCloud 分布式配置

我們一般把配置檔案寫在專案中直接獲取相關引數 spring cloud config實現的配置中心預設採用git來儲存配置資訊,所以使用spring cloud config構建的配置伺服器,天然就支援對微服務應用配置資訊的版本管理,並且可以通過git客戶端工具來方便的管理和訪問配置內容。1.配置倉...

springcloud分布式配置中心

本文是對內容做些應用 1.bootstrap.properties檔案內容 必須與配置中心中的檔案字首一致 開啟健康檢查 需要spring boot starter actuator依賴 eureka.client.healthcheck.enabled true 續約更新時間間隔 預設30秒 eu...

SpringCloud 分布式配置中心

一 搭建配置中心 首先在pom檔案中引入配置中心相關的jar包 org.springframework.cloud spring cloud config server 2.2.0.release 編寫yml檔案 server port 3344 spring name cloud config c...