Sentinel-结合Feign(五)
1. 添加依赖: sentinel,feign2. 配置feign允许sentinel3. 编写: feign,请求客户端4. 为客户端添加(sentinel)异常处理类
1.添加依赖: sentinel,feign
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId></dependency><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency>
2.配置feign允许sentinel
feign: sentinel: enabled: true
3.编写: feign,请求客户端
@FeignClient(name = "user-center")public interface UserCenterFeignClient { public ApiResult findBy(Integer id); public ApiResult getDetail(User user);}
4.为客户端添加(sentinel)异常处理类
方式(1).
// 用户中心 Feign 接口@FeignClient(name = "user-center",fallback = FeignClientFallback.class)public interface UserCenterFeignClient { public ApiResult findBy(Integer id); public ApiResult getDetail(User user);}// 用户中心 Feign异常接收处理类@Componentpublic class UserCenterFeignClientFallback implements UserCenterFeignClient { @Override public ApiResult findBy(Integer id) { return ApiResult.error("异常"); } @Override public ApiResult getDetail(User users) { return ApiResult.error("异常"); }}
方式(2).
// 接口@FeignClient(name = "user-center",fallbackFactory = FeignClientFallback.class) // 方法上可以拿到异常public interface UserCenterFeignClient { public ApiResult findBy(Integer id); public ApiResult getDetail(User user);}// 异常处理类@Component@Slf4jpublic class UserCenterFeignClientFallbackFactory implements FallbackFactory<UserCenterFeignClient> { // 用户中心 Feign异常接收处理类 @Override public UserCenterFeignClient create(Throwable throwable) { return new UserCenterFeignClient() { @Override public ApiResult findBy(Integer id) { log.warn("异常",throwable); return ApiResult.error("Sentinel 异常"); } @Override public ApiResult getDetail(User users) { return ApiResult.error("Sentinel 异常"); } }; }}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。