您好,登錄后才能下訂單哦!
1. 添加依賴: sentinel,feign
2. 配置feign允許sentinel
3. 編寫: 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異常接收處理類
@Component
public 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
@Slf4j
public 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 異常");
}
};
}
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。