鍍金池/ 問答/Java/ spring cloud feign啟動熔斷后為何直接執(zhí)行fallback內(nèi)的方

spring cloud feign啟動熔斷后為何直接執(zhí)行fallback內(nèi)的方法?

問題描述

在使用feign過程中,通過配置 feign.hystrix.enabled=true 開啟熔斷。但啟動后將直接執(zhí)行fallback也不會判斷調(diào)用是否成功。在未配置熔斷啟動的情況下調(diào)用正常,當(dāng)前需要開啟熔斷后先嘗試調(diào)用,在調(diào)用失敗后才調(diào)用fallback的回退方法。

相關(guān)代碼

Feign 客戶端

@FeignClient(name = ServiceConstant.HNISTER_SECURITY,fallback = ResourceRestApiFallback.class,path = "api")
public interface ResourceRestApi {
    @GetMapping(path = "resources")
    List<ResourceDTO> findAll();

    @GetMapping(path = "resources/status/{status}")
    List<ResourceDTO> findByStatus(@PathVariable(name = "status") Integer status);
}

Fallback

@Component
public class ResourceRestApiFallback implements ResourceRestApi {
    private Logger logger = LoggerFactory.getLogger(ResourceRestApiFallback.class);


    @Override
    public List<ResourceDTO> findAll() {
        logger.error("#hnister# feign client ResourceRestApiFallback.findAll() fail");
        return Lists.newArrayList();
    }

    @Override
    public List<ResourceDTO> findByStatus(Integer status) {
        logger.error("#hnister# feign client ResourceRestApiFallback.findByStatus() fail");
        return Lists.newArrayList();
    }
}
回答
編輯回答
選擇

遇到同樣的問題,解決了嗎?

2017年11月22日 22:51