Sentinel与OpenFeign整合

配置

打开OpenFeign对Sentinel的支持

spring:
  application:
    name: order-service
  cloud:
    nacos:
      # nacos服务地址
      server-addr: 192.168.31.233:8847
      # 连接账号/密码 默认账户密码 nacos/nacos
      discovery:
        username: nacos
        password: nacos
         
feign:
  # 打开OpenFeign对Sentinel的支持
  sentinel:
    enabled: true

启用类上开启Feign支持

@SpringBootApplication
@EnableFeignClients   //开启Feign支持
public class OrderOpenfeignApplication {
    public static void main(String[] args) {
        SpringApplication.run(OrderOpenfeignApplication.class, args);
    }
}

实现

使用注解@FeignClient 标记服务提供者的接口,FeignClient 的fallback 属性可以指定控流和异常处理。

/**
 * 服务提供者
 * @FeignClient
 * value:服务提供者服务名称
 * path:调用路径
 * fallback:流控异常处理
 */
@FeignClient(value = "stock-service",path = "/stock",fallback = StockFeignSeriveFallback.class)
public interface StockFeignService {
    @RequestMapping("/add")
    public String add() ;
}

/**
 * 异常处理
 * 必须继承服务提供者,实现其所有接口
 */
@Component
public class StockFeignSeriveFallback implements StockFeignService{
	/**
	 * 服务提供接口异常处理
	 */
    @Override
    public String add() {
        return "被流控了";
    }
}