feign hystrix 熔斷器的 fallback 類的熔斷方法異常觸發,及查看異常方法

明明正常調用生產者方法執行成功了,但是熔斷器還會觸發,時不時的就觸發一次,折騰了一下午,終於發現原因:

 

應用啓動後就立即執行了方法,應該稍微等待,等它完全運行

 

另外:查看降級熔斷原因,使用fallbackfactory自帶的create方法

@FeignClient(name = "service-vod",fallbackFactory = VodFallbaclFactory.class)
@Component
public interface VodConsumer {

    @DeleteMapping("/service-vod/video/{id}")
    public R removeVideoById(@PathVariable("id") String id);

    @DeleteMapping("/id/list")
    public R removeVideoByIds(@RequestBody List<String> idList);
}

 

@Component
public class VodFallbaclFactory implements FallbackFactory<VodConsumer> {
    @Override
    public VodConsumer create(Throwable throwable) {
        return new VodConsumer() {
            @Override
            public R removeVideoById(String id) {
                System.out.println("removeById:" + throwable.getStackTrace() + throwable.getMessage() + throwable.fillInStackTrace());
                return null;
            }

            @Override
            public R removeVideoByIds(List<String> idList) {
                return null;
            }
        };
    }
}

注意:@FeignClient 加上fallbackfactory後,不要再使用fallback,不然會優先fallback,無法查看異常

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章