1. 程式人生 > >eureka_hystrix學習_1

eureka_hystrix學習_1

目前瞭解到的熔斷機制實現方式有兩種

1.載入ribbon時實現的

a.新增相關依賴

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

b.在Application上添加註解@EnableHystrix和@EnableHystrixDashboard

c.Service層,在我們需要進行熔斷處理的方法上新增@HystrixCommand,制定fallbackMethod來對錯誤進行處理。如:

    @HystrixCommand(fallbackMethod = "hiError")
    public String hiService(String name){
        return restTemplate.getForObject("http://SERVICE-HI/hi?name="+name,String.class
); } public String hiError(String name){ return "hi,"+name+",sorry,error!"; }

2.載入feign時實現的

a.新增依賴

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
        </dependency>

b.在yml配置檔案中新增feign.hystrix.enabled: true 來啟動熔斷機制

c.在Application上添加註解@EnableCircuitBreaker

d.在@FeignClient註解的屬性中新增fallback指定錯誤處理類

e.定義錯誤處理類實現@FeignClient,每個方法的錯誤處理都可以進行操作。

注意:在我看來,第二種比較適合,他將錯誤處理分離出來了