原標(biāo)題:Spring認(rèn)證|Spring Cloud官方介紹 Spring Cloud 提供了多種不同的功能,允許您在自己的應(yīng)用程序中使用一致性的 API,開發(fā)人員選擇最適合您的應(yīng)用程序需求的功能。 支持的實(shí)現(xiàn)Netfix Hystrix 彈性4J 哨兵 春季重試 核心概念要在您的代碼中創(chuàng)建生產(chǎn),您可以使用CircuitBreakerFactoryAPI。當(dāng)您在類路徑中包含Spring Cloud Circuit Breaker starter 時(shí),將自動(dòng)為您創(chuàng)建一個(gè)實(shí)現(xiàn)此API 的bean。給個(gè)使用此API 的非常簡單的例子 @服務(wù) 公共靜態(tài)類 DemoControllerService { 私人休息模板休息; 私人斷路器工廠 cbFactory; 公共 DemoControllerService(RestTemplate 休息,CircuitBreakerFactory cbFactory){ this.rest = 休息; this.cbFactory = cbFactory; } 公共字符串慢(){ return cbFactory.create("slow").run(() -> rest.getForObject("/slow", String.class), throwable -> "fallback"); } } 該CircuitBreakerFactory.createAPI將創(chuàng)建一個(gè)命名類的一個(gè)實(shí)例CircuitBreaker。該運(yùn)行方法采用一個(gè)供應(yīng)商和一個(gè)功能。這就是您要包裝在供應(yīng)時(shí)中的代碼。Function是法院跳閘這將執(zhí)行的回退。將傳遞Throwable導(dǎo)致回退被觸發(fā)的函數(shù)。如果您不想提供后備,您可以選擇退出后備。 反應(yīng)式代碼中的 如果 Project Reactor 在類路徑上,那么您也可以使用 ReactiveCircuitBreakerFactory 用于響應(yīng)式代碼。 @服務(wù) 公共靜態(tài)類 DemoControllerService { 私有 ReactiveCircuitBreakerFactory cbFactory; 私有 WebClient webClient; 公共演示控制器服務(wù)(WebClient webClient,ReactiveCircuitBreakerFactory cbFactory){ this.webClient = webClient; this.cbFactory = cbFactory; } 公共單聲道慢(){ return webClient.get().uri("/slow").retrieve().bodyToMono(String.class).transform( it -> cbFactory.create("slow").run(it, throwable -> return Mono.just("fallback"))); } } 該ReactiveCircuitBreakerFactory.createAPI 將創(chuàng)建一個(gè)命名類的一個(gè)實(shí)例ReactiveCircuitBreaker。該方法應(yīng)該采用MonoorFlux 使其包裝在國外中。您可以選擇配置一個(gè)回退功能,如果回跳閘通過Throwable導(dǎo)致失敗退,則該回退將被調(diào)用。 Spring啟動(dòng)配置Spring Cloud BOM 提供以下啟動(dòng)器 Hystrix - org.springframework.cloud:spring-cloud-starter-netflix-hystrix 彈性4J - org.springframework.cloud:spring-cloud-starter-circuitbreaker-resilience4j 反應(yīng)性彈性4J - org.springframework.cloud:spring-cloud-starter-circuitbreaker-reactor-resilience4j 春季重試—— org.springframework.cloud:spring-cloud-starter-circuitbreaker-spring-retry 哨兵—— org.springframework.cloud:spring-cloud-starter-circuitbreaker-sentinal 未完待續(xù)…… |
|