直接点上代码:
package com.fuXiApi.api;
import com.common.util.MyResult;
import com.fuXiApi.api.fallback.UserClientFallback;
import com.fuXiApi.dto.UserDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@FeignClient(name = "fuxi-user-server", fallback = UserClientFallback.class)
public interface UserClient {
@GetMapping("/user/getUserById/{id}")
MyResult<UserDTO> getUserById(@PathVariable("id") Integer id);
}
定义了以对外提供服务的接口,并且声明了降级类。
降级类:
package com.fuXiApi.api.fallback;
import com.common.util.MyResult;
import com.fuXiApi.api.UserClient;
import com.fuXiApi.dto.UserDTO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
/**
* @program: springCloudeAlibabaFuXi
* @author: quxiao
* @create: 2024-03-19 21:09
**/
@Component
@Slf4j
public class UserClientFallback implements UserClient {
@Override
public MyResult<UserDTO> getUserById(Integer id) {
log.info("用户通过id获取方法降级方法");
return MyResult.fail();
}
}
但是一直无法走这里面的方法,直到我把以前的代码,一个服务一个服务的排除配置,这个配置耗时我今晚两小时:
feign: sentinel: enabled: true
一定要在消费方开启这个配置!
或者这个:
feign: hystrix: enabled: true
选择其中一个在消费方开启!