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 "被流控了";
}
}