springcloud知識路線
阿新 • • 發佈:2019-12-31
springcloud知識路線
什麼springCloud
在springboot的基礎上構建的微服務框架
1.引入元件的啟動器
2.覆蓋預設配置
3.在引導類上新增相應的註解
複製程式碼
eureka
註冊中心,服務的註冊與發現
服務端
1.引入服務端啟動器:eureka-server
2.添加了配置
spring.applicaiton.name
服務名
eureka.client.service-url.defaultZone
http://localhost:10086/eureka
eureka.server.eviction-interval-timer-in-ms
剔除無效連線的間隔時間
eureka.server.enable-self-preservation
關閉自我保護
3.@EnableEurekaServer
開啟eureka服務端功能
複製程式碼
客戶端
#### 1.引入啟動器:eureka-client
#### 2.新增配置
spring.application.name
eureka.client.service-url.defaultZone
eureka.instance.lease-renewal-interval-in-seconds
心跳時間
eureka.instance.lease-expiration-duration-in-seconds
過期時間
eureka.client.register-with-eureka
是否註冊給eureka容器
預設true
eureka.client.fetch-registry
是否拉取服務列表
預設true
eureka.client.registry-fetch-interval-seconds
拉取服務的間隔時間
3.@EnableDiscoveryClient
啟用eureka客戶端
複製程式碼
ribbon
負載均衡元件
eureka、feign以及zuul已整合
配置負載均衡策略
<服務名>.ribbon.NFLoadBalancerRuleClassName
負載均衡策略的全路徑
@LoadBalanced
在RestTemplate的@Bean方法上
複製程式碼
hystrix
容錯元件
降級
1.引入hystrix的啟動器
2.新增配置,超時時間的配置
3.@EnableCircuitBreaker
啟用熔斷元件
@SpringCloudApplication
@SpringBootApplication
@EnableDiscveryClient
程式碼
區域性
返回值和引數列表和被熔斷的方法一致
在被熔斷的方法上@HystrixCommand(fallbackMethod="熔斷方法名")
全域性
返回值和被熔斷的方法返回值一致,不能有引數列表
在類上@DefaultProperties(defaultFallbck="全域性熔斷方法名")
在具體的被熔斷方法上@HystrixCommand
熔斷
close
關閉狀態
所有請求都正常訪問
open
開啟狀態
所有請求都無法訪問
觸發:連續失敗的比例大於50%或者失敗次數不少於20
維持5s的休眠時間
half open
半開狀態
釋放部分請求通過
正常
close
不正常
open
觸發:休眠時間之後
複製程式碼
feign
遠端呼叫元件
整合ribbon和hystrix
使程式碼更加優雅
1.引入feign的啟動器
2.feign.hystrix.enable=true
開啟熔斷
3.@EnableFeignClients
開啟feign的功能
程式碼
定義一個介面
@FeignClient(value="服務名",fallback=實現類.class)
方法上的註解使用的都是springMVC的註解
複製程式碼
zuul
閘道器元件
路由
過濾器
1.引入啟動器
2.新增配置
路由的配置
zuul.prefix
路由字首
四種路由配置方式
zuul.routes.<路由名>.path=/service-provider/**
zuul.routes.<路由名>.url=http://localhost:8081
zuul.routes.<路由名>.path=/service-provider/**
zuul.routes.<路由名>.serviceId=service-provider
zuul.routes.<路由名:服務名>=/service-provider/**
不配置
預設服務的入口就是以服務名為字首
3.@EnableZuulProxy
開啟zuul閘道器元件
4.自定義過濾器
IZuulFilter
預設的抽象實現類:ZuulFilter
filterType
pre
post
route
error
filterOrder
執行順序,返回值越小優先順序越高
shouldFilter
是否執行run方法
true
執行
run
過濾器的具體邏輯
四種執行順序
pre-->route-->post
異常
pre或者route出現異常
直接執行error-->post
post出現異常
error-->響應
error出現異常
error-->post
複製程式碼
更多詳情
更多詳情請訪問: juntech.top