Spring Cloud 的 Hystrix 通過Fallback Factory 檢查回退的錯誤原因
阿新 • • 發佈:2019-01-30
一、Feign指向
注意採用的是fallbackFactory指向package com.itmuch.cloud; import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @FeignClient(name="cloud-service", fallbackFactory = FeignClientFallbackFactory.class) // 服務端提供者的name public interface UserFeignClient { @RequestMapping(value = "/get/{id}", method = RequestMethod.GET) public User findById(@PathVariable("id") Long id); }
二、建立一個Feign介面實現類
package com.itmuch.cloud; import org.springframework.stereotype.Component; import feign.hystrix.FallbackFactory; @Component public class FeignClientFallbackFactory implements FallbackFactory<UserFeignClient> { @Override public UserFeignClient create(Throwable cause) { return new UserFeignClient() { @Override public User findById(Long id) { System.out.println("fallback; reason was:" + cause); User user = new User(); user.setId(-1L); user.setName("NULL"); return user; } }; } }