1. 程式人生 > 程式設計 >springcloud知識路線

springcloud知識路線

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