springcloud的常用元件,以及它們的用處

2021-09-24 10:17:03 字數 2331 閱讀 6468

1.eureka註冊中心

3.客戶端註冊服務到集群

eureka:

client:

service-url: # eurekaserver位址,多個位址以』,'隔開

defaultzone:

4.服務續約

lease-renewal-interval-in-seconds:服務續約(renew)的間隔,預設為30秒 lease-expiration-duration-in-seconds:服務失效時間,預設值90秒

2.ribbon:負載均衡

消費者身上:

@bean

@loadbalanced

public resttemplate resttemplate()

重試機制

spring:

cloud:

loadbalancer:

retry:

enabled: true # 開啟spring cloud的重試功能 user-service:

ribbon:

connecttimeout: 250 # ribbon的連線超時時間

readtimeout: 1000 # ribbon的資料讀取超時時間 oktoretryonalloperations: true # 是否對所有操作都進行重試 maxautoretriesnextserver: 1 # 切換例項的重試次數 maxautoretries: 1 # 對當前例項的重試次數

3.hystix:熔斷器

hystix是netflix開源的乙個延遲和容錯庫,用於隔離訪問遠端服務、第三方庫,防止出現級聯失敗。

1.在消費者身上

@hystrixcommand(fallbackmethod=「queryuserbyidfallback」) :宣告乙個失敗回滾處理函式 queryuserbyidfallback,當queryuserbyid執行超時(預設是1000毫秒),就會執行fallback函式,返回錯 誤提示。

為了方便檢視熔斷的觸發時機,我們記錄請求訪問時間。

2.在服務提供者身上

// 為了演示超時現象,我們在這裡然執行緒休眠,時間隨機 0~2000毫秒 thread.sleep(new random().nextint(2000));

4.feign:服務呼叫

1.你會發現resttemplate的註冊被我刪除了。feign中已經自動整合了ribbon負載均衡,因此我們不需要自己 定義resttemplate了

2.另外,我們可以像上節課中講的那樣去配置ribbon,可以通過 ribbon.xx 來進行全域性配置。也可以通過 服務名.ribbon.xx 來對指定服務配置:

user-service:

ribbon:

connecttimeout: 250 # 連線超時時間(ms)

readtimeout: 1000 # 通訊超時時間(ms)

oktoretryonalloperations: true # 是否對所有操作重試

maxautoretriesnextserver: 1 # 同一服務不同例項的重試次數 maxautoretries: 1 # 同一例項的重試次數

5.zuul:服務閘道器

對外服務呼叫:

首先,破壞了服務無狀態特點。

為了保證對外服務的安全性,我們需要實現對服務訪問的許可權控制,而開放服務的許可權控制機制將會貫 穿並汙染整個開放服務的業務邏輯,這會帶來的最直接問題是,破壞了服務集群中rest api無狀態的特 點。 從具體開發和測試的角度來說,在工作中除了要考慮實際的業務邏輯之外,還需要額外考慮對介面訪問 的控制處理。

其次,無法直接復用既有介面。

當我們需要對乙個即有的集群內訪問介面,實現外部服務訪問時,我們不得不通過在原有介面上增加校驗邏輯,或增加乙個**呼叫來實現許可權控制,無法直接復用原有的介面。

1.不管是來自於客戶端(pc或移動端)的請求,還是服務內部呼叫。一切對服務的請求都會經過zuul這個網 關,然後再由閘道器來實現 鑑權、動態路由等等操作。zuul就是我們服務的統一入口。

2.面向服務的路由

3.過濾器

zuul作為閘道器的其中乙個重要功能,就是實現請求的鑑權。而這個動作我們往往是通過zuul提供的過濾器來實現

的。場景非常多:

請求鑑權:一般放在pre型別,如果發現沒有訪問許可權,直接就攔截了

異常處理:一般會在error型別和post型別過濾器中結合來處理。

服務呼叫時長統計:pre和post結合使用。

4.負載均衡和熔斷

6.config配置中心

Springcloud常用元件

一 eureka netfix下 雲端服務發現,乙個基於 rest 的服務,用於定位服務,以實現雲端中間層服務發現和故障轉移。二 spring cloud config spring下 配置管理工具包,讓你可以把配置放到遠端伺服器,集中化管理集群配置,目前支援本地儲存 git以及subversion...

springcloud常用註解

1 在主程式類名上新增註解 enableeurekaserver 開啟eureka註冊中心功能 2 在主程式類名上新增註解 enablediscoveryclient 將自己自動註冊到註冊中心 3 給容器中注入乙個resttemplate並使用ribbon進行負載均衡呼叫 loadbalanced ...

springcloud常用註解

configuration 表示將該類作用springboot配置檔案類 enableautoconfiguration 表示程式啟動時,自動載入springboot預設的配置 componentscan 表示程式啟動是,自動掃瞄當前包及子包下所有類 enablediscoveryclient en...