1. 程式人生 > 實用技巧 >02spring_cloud元件基本過程

02spring_cloud元件基本過程


1.引入啟動器
2.覆蓋預設配置
3.在引導類上啟用元件

1.高可用 itcast-eureka
10086 10087

2.心跳過期 itcast-service-provider
eureka:
instance:
lease-renewal-interval-in-seconds: 5 # 心跳時間
lease-expiration-duration-in-seconds: 15 # 過期時間

3.拉取服務的間隔時間 itcast-service-consumer
eureka:
client:
registry-fetch-interval-seconds: 5

4.關閉自我保護,定期清除無效連線


eureka:
server:
eviction-interval-timer-in-ms: 5000
enable-self-preservation: false

ribbon: 負載均衡元件
1.eureka集成了
2.@LoadBalanced:開啟負載均衡
3.this.restTemplate.getForObject("http://service-provider/user/" + id, User.class);

hystrix:容錯元件
降級:檢查每次請求,是否請求超時,或者連線池已滿
1.引入hystrix啟動器
2.熔斷時間,預設1s, 6s
3.在引導類上添加了一個註解:@EnableCircuitBreaker @SpringCloudApplication


4.定義熔斷方法:區域性(要和被熔斷的方法返回值和引數列表一致) 全域性(返回值型別要被熔斷的方法一致,引數列表必須為空)
5.@HystrixCommand(fallbackMethod="區域性熔斷方法名"):宣告被熔斷的方法
6.@DefaultProperties(defaultFallback="全域性熔斷方法名")
熔斷:不再發送請求
1.close:閉合狀態,所有請求正常方法
2.open:開啟狀態,所有請求都無法訪問。如果在一定時間內容,失敗的比例不小於50%或者次數不少於20次
3.half open:半開狀態,開啟狀態預設5s休眠期,在休眠期所有請求無法正常訪問。過了休眠期會進入半開狀態,放部分請求通過


feign
1.引入openFeign啟動器
2.feign.hystrix.enable=true,開啟feign的熔斷功能
3.在引導類上 @EnableFeignClients
4.建立一個介面,在介面新增@FeignClient(value="服務id", fallback=實現類.class)
5.在介面中定義一些方法,這些方法的書寫方式跟之前controller類似
6.建立了一個熔斷類,實現feign介面,實現對應的方法,這些實現方法就是熔斷方法

zuul

  1、引入zuul的啟動器

  2、配置:

    1、zuul.routes.<路由名稱>.path="/service-provider/**

     zuul.routes.<路有個名稱>.url=http://localhost:8081

    2、zuul.routes.<路由名稱>.path=/service-provider/**

    zuul.routes.<路由名稱>.serviceId=service-provider

    3、zuul.routes.服務名=/service-provider/**     *********

     4、不用配置

zuul:
routes:
# 這個 /service-provider/** 路徑 對映轉發到
# 這個服務 service-provider的地址,實際地址是:http://localhost:8081,可以實現負載均衡,
service-provider: /user/** #路由名稱,可以隨便寫,習慣上跟服務名一致
service-consumer: /consumer/**
prefix: /api
# path: /service-provider/**
# url: http://localhost:8081
# serviceId: service-provider

  3.@EnableZuulproxy