【SpringCloud】(十二):Fegion的Hystrix支援
Fegion也支援Hystrix。當服務提供者出現異常的時候,使用Hystrix回撥方法。
在前面文章中提到的microservice-comsumer-movie-feign的基礎上進行修改,主要是有一個回撥的方法。
啟動類:
package com.dynamic.cloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
public class ComsumerMovieFeignApplication {
public static void main(String[] args) {
SpringApplication.run(ComsumerMovieFeignApplication.class, args);
}
}
Controller
package com.dynamic.cloud.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;
import com.dynamic.cloud.entity.User;
import com.dynamic.cloud.feign.UserFeignClient;
@RestController
public class MovieController {
@Autowired
private UserFeignClient userFeignClient;
@GetMapping("/movie/{id}")
public User findById(@PathVariable Long id)
{
return this.userFeignClient.findById(id);
}
}
package com.dynamic.cloud.feign;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.dynamic.cloud.entity.User;
@FeignClient(name="microservice-provider-user",fallback =HystrixClientFallback.class)
public interface UserFeignClient {
@RequestMapping(value="/simple/{id}",method = RequestMethod.GET) //只能是RequestMapping
public User findById(@PathVariable("id") Long id); //@PathVariable需要設定括號中的名稱
}
@FeignClient,要用name 和 fallback
HystrixClientFallback要實現UserFeignClient,並且加入到容器中。
package com.dynamic.cloud.feign;
import org.springframework.stereotype.Component;
import com.dynamic.cloud.entity.User;
@Component
public class HystrixClientFallback implements UserFeignClient {
@Override
public User findById(Long id) {
User user = new User();
user.setId(0L);
return user;
}
}
啟動Eureka,使用者微服務和修改後的電影微服務。正常情況下,電影微服務呼叫使用者微服務顯示資料,當使用者微服務出現異常時。電影微服務執行回撥方法。
相關文章
- 【SpringCloud】(十四):Feign對Hystrix的支援 fallbackFactorySpringGCCloud
- SpringCloud之HystrixSpringGCCloud
- 【SpringCloud】(十三):全域性和單個禁用Feign Client對Hystrix的支援SpringGCCloudclient
- SpringCloud使用Sentinel 代替 HystrixSpringGCCloud
- springcloud之Hystrix熔斷器SpringGCCloud
- SpringCloud(三)Hystrix斷路器SpringGCCloud
- springcloud(四):熔斷器HystrixSpringGCCloud
- 史上最簡單的SpringCloud教程 | 第十二篇: 斷路器監控(Hystrix Dashboard)(Finchley版本)SpringGCCloud
- SpringCloud+Hystrix服務容錯SpringGCCloud
- SpringCloud學習筆記(3)——HystrixSpringGCCloud筆記
- 業餘草 SpringCloud教程 | 第十二篇: 斷路器聚合監控(Hystrix Turbine)(Finchley版本)SpringGCCloud
- springcloud(五):熔斷監控Hystrix DashboardSpringGCCloud
- SpringCloud-Hystrix 服務降級、熔斷SpringGCCloud
- 《SpringCloud專題17》-Hystrix熔斷器案例SpringGCCloud
- springcloud之hystrix原理和實踐總結SpringGCCloud
- springcloud學習筆記(四)Spring Cloud HystrixSpringGCCloud筆記
- SpringCloud之斷路器聚合監控(Hystrix Turbine)SpringGCCloud
- SpringCloud原始碼學習之Hystrix熔斷器SpringGCCloud原始碼
- springCloud入門學習--Hystrix狀態監控SpringGCCloud
- SpringCloud 2020.0.4 系列之Hystrix看板SpringGCCloud
- SpringCloud學習筆記:熔斷器Hystrix(5)SpringGCCloud筆記
- springcloud(五):熔斷監控Hystrix Dashboard和TurbineSpringGCCloud
- springcloud 微服務配置監控端點 hystrix.streamSpringGCCloud微服務
- 跟我學SpringCloud | 第四篇:熔斷器HystrixSpringGCCloud
- SpringCloud Alibaba實戰(9:Hystrix容錯保護)SpringGCCloud
- SpringCloud微服務(基於Eureka+Feign+Hystrix+Zuul)SpringGCCloud微服務Zuul
- (24)SpringCloud-Hystrix(熔斷器)介紹及使用SpringGCCloud
- 微服務SpringCloud之熔斷監控Hystrix Dashboard和Turbine微服務SpringGCCloud
- SpringCloud構建微服務架構-Hystrix服務降級SpringGCCloud微服務架構
- springcloud之hystrix熔斷器-Finchley.SR2版SpringGCCloud
- ④SpringCloud 實戰:引入Hystrix元件,分散式系統容錯SpringGCCloud元件分散式
- 史上最簡單的 SpringCloud 教程 | 第四篇: 斷路器(Hystrix)SpringGCCloud
- SpringCloud系列之服務容錯保護Netflix HystrixSpringGCCloud
- springCloud學習3(Netflix Hystrix彈性客戶端)SpringGCCloud客戶端
- SpringCloud微服務系列(5): 服務容錯斷路器HystrixSpringGCCloud微服務
- springcloud微服務實戰 學習筆記五 Hystrix服務降級 Hystrix依賴隔離 斷路器SpringGCCloud微服務筆記
- SpringCloud Netflix (五) : Hystrix 服務熔斷和服務降級SpringGCCloud
- 跟我學SpringCloud | 第五篇:熔斷監控Hystrix Dashboard和TurbineSpringGCCloud