您的位置:首页 - 文章 - Spring Cloud - 正文

SpringCould-熔断

启动类增加注解 启用熔断机制。

package com.sxpcwlkj.order_server;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.cloud.client.SpringCloudApplication;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

@SpringBootApplication
@EnableFeignClients
@EnableCircuitBreaker  //启用熔断机制
public class OrderServerApplication {

    public static void main(String[] args) {
        SpringApplication.run(OrderServerApplication.class, args);
    }


    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }


}

创建类 ProductClientFallback

集成了 Feign 接口类

package com.sxpcwlkj.order_server.fallbcak;


import com.sxpcwlkj.order_server.service.ProductClient;
import org.springframework.stereotype.Component;

/**
 * 针对商品服务,错降级处理
 * 这里是集成了 Feign 接口类
 */
@Component
public class ProductClientFallback implements ProductClient {


    @Override
    public String selectByIdTwo(int id) {
        System.err.println("XXXXXXXXXXXXXXXXXXXXX");
        return "鸭梨山大...";
    }
}

管理配置注解

@FeignClient(name = "product-service",fallback = ProductClientFallback.class)

package com.sxpcwlkj.order_server.service;


import com.sxpcwlkj.order_server.fallbcak.ProductClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * 商品服务客户端
 */
@FeignClient(name = "product-service",fallback = ProductClientFallback.class)
//@FeignClient(name = "product-service")
public interface ProductClient {


    @GetMapping("/api/v1/product/selectByIdTwo")
    String selectByIdTwo(@RequestParam(value = "id") int id);



}

模拟:

商品服务抛异常

会走

System.err.println("XXXXXXXXXXXXXXXXXXXXX");

return "鸭梨山大...";

本文原创,作者:西决,其版权均为品创网络所有。如需转载,请注明出处:https://www.sxpcwlkj.com/springcould-hystrix/

发表评论