Spring Cloud Alibaba Sentinel对Feign的支持

本文介绍了Spring Cloud Alibaba Sentinel如何支持Feign,并详细解析了集成过程和实现原理。通过配置SentinelFeignAutoConfiguration,Sentinel动态代理Feign调用,实现限流和熔断。SentinelInvocationHandler在invoke方法中处理熔断限流逻辑,类似Hystrix的包装方式,提供了一种从Hystrix平滑切换到Sentinel的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring Cloud Alibaba Sentinel 除了对 RestTemplate 做了支持,同样对于 Feign 也做了支持,如果我们要从 Hystrix 切换到 Sentinel 是非常方便的,下面来介绍下如何对 Feign 的支持以及实现原理。

集成 Feign 使用

spring-cloud-starter-alibaba-sentinel 的依赖还是要加的,如下:

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
	<version>0.2.1.RELEASE</version>
</dependency>

需要在配置文件中开启 sentinel 对 feign 的支持:

feign.sentinel.enabled=true

然后我们定义自己需要调用的 Feign Client:

@FeignClient(name = "user-service", fallback = UserFeignClientFallback.class)
public interface UserFeignClient {
	
	@GetMapping("/user/get")
	public String getUser(@RequestParam("id") Long id);
	
}

定义 fallback 类 UserFeignClientFallback:

@Component
public class UserFeignClientFallback implements UserFeignClient {

	@Override
	public String getUser(Long id) {
		return "fallback";
	}

}

测试代码:

@Autowired
private UserFeignClient userFeignClient;

@GetMapping("/testFeign")
public String testFeign() {
	return userFeignClient.getUser(1L);
}

你可以将这个 Client 对应的 user-service 停掉,然后就可以看到输出的内容是 “fallback”

如果要对 Fei

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值