當前位置:編程學習大全網 - 源碼下載 - Spring Cloud 微服務實戰

Spring Cloud 微服務實戰

閱讀《Spring微服務實戰》筆記

項目地址: /liaozb1996/spring-cloud-in-action

配置管理原則:

Spring Cloud Config 後端存儲:文件系統、Git

標註引導類:

配置服務器配置:

創建配置文件:

訪問配置:

客戶端配置:

spring-cloud-config-client 依賴

boostrap.properties

刷新屬性:

服務發現至關重要的原因:

傳統服務位置解析(DNS+負載均衡器)的缺點:

服務發現實現組件:

構建 Eureka 服務:

標註引導類:

單機模式配置 :

每次註冊服務都需要等待30秒,因為 eureka 需要連續接收 3 個心跳包才能使用該服務。

緩存註冊表後,客戶端每隔30秒會重新到 eureka 刷新註冊表。

服務註冊:

解決多網卡問題:

通過API獲取註冊表信息:(設置請求頭 Accept:application/json )

/Netflix/Hystrix/wiki/Configuration

使用 Hystrix 默認配置對遠程調用進行管理:

超時配置: execution.isolation.thread.timeoutInMilliseconds

配置後備策略:後備方法必須在同壹類中並且具有相同的方法簽名

配置艙壁:

Hystrix 斷路的策略:

Hystrix 有三個級別的配置:

類級別配置:

Hystrix 有兩個隔離策略:

如果使用 TREAD 策略,並且要將父線程的上下文傳遞到子線程中,需要自定義 HystrixConcurrencyStrategy

Zuul 提供的功能:路由映射、構建過濾器

依賴:zuul、eureka-client

標註引導類:

zuul 配置:

?

Zuul路由映射機制:

查詢路由: http://localhost:8080/actuator/routes

調用服務: http://localhost:8080/license/license/1 (第壹個 license 是服務ID,/license/1 是請求路徑)

使用服務發現手動映射路由:

添加前綴:

手動配置靜態路由:前面都是基於 eureka 上的服務id進行路由映射的,而這裏是直接配置URL

Git + http://localhost:8080/actuator/refresh (POST)

Zuul 使用 Hystrix 和 Ribbon

Zuul 支持三種過濾器類型:前置過濾器、後置過濾器、路由過濾器

前置過濾器:向通過網關的請求添加 tracking-id

這裏使用了 Zuul 的 RequestContext:

Zuul 不允許直接修改請求頭部,這裏通過 addZuulRequestHeader 添加頭部信息,在調用遠程服務會自動合並

為了方便應用獲取 tracking-id,這裏使用 Filter 獲取請求頭信息並映射到 UserContext 中:

為了在服務間調用傳播 tracking-id 這裏需要定義壹個 和 RestTemplate:

項目中 license 會遠程調用 orgnization,這裏需要在兩個微服務配置 Filter

  • 上一篇:英語笑話帶翻譯100。
  • 下一篇:暑期自學設計的網站
  • copyright 2024編程學習大全網