簡體   English   中英

春雲hystrix fallbackfactory

[英]spring cloud hystrix fallbackfactory

當我用hystrix研究Spring cloud偽裝時,遇到一個問題,如果我使用LOGGER.info(“ **** {}”,cause.getMessage()),后備功能將不起作用,UserFeignClient#findById(Long)會計時退出和后備失敗。 但是,如果我刪除cause.getMessage(),回退就可以了。 為什么?

public class UserFeignFallBackFactory implements FallbackFactory<UserFeignClient> {

    private static final Logger LOGGER = LoggerFactory.getLogger(UserFeignFallBackFactory.class);

    @Override
    public UserFeignClient create(Throwable cause) {
        LOGGER.info("call UserFeignClient error, error msg is : {}");
        return new UserFeignClientEx() {
            @Override
            public User findById(@PathVariable("id") Long id) {
                return new User(-1L, null, null, (short) 20);
            }
        };
    }
}

在此處輸入圖片說明

你可以這樣嘗試

public class UserFeignFallBackFactory implements FallbackFactory<UserFeignClient> {

private static final Logger LOGGER = LoggerFactory.getLogger(UserFeignFallBackFactory.class);

@Override
public UserFeignClient create(Throwable cause) {

    return new UserFeignClientEx() {
        @Override
        public User findById(@PathVariable("id") Long id) {
            LOGGER.info("call UserFeignClient error, error msg is : {}");
            return new User(-1L, null, null, (short) 20);
        }
    };
}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM