JAVA 多使用者商城系統b2b2c-Feign對Hystrix的支援

小兵2147775633發表於2018-12-24

如果Hystrix在classpath下,預設情況下將包括Feign與斷路器的所有方法。返回一個com.netflix.hystrix.HystrixCommand去使用,允許你使用反應模式(呼叫.toObservable或.observe()或非同步使用(.queue()))。要禁用Feign的Hystrix支援,設定feign.hystrix.enable=false。

需要JAVA Spring Cloud大型企業分散式微服務雲構建的B2B2C電子商務平臺原始碼:壹零叄八柒柒肆六二六

要在每個客戶端上禁用Hystrix支援,建立一個Feign.Builder並將scope設定為“prototype”,例如:

@Configuration
public class FooConfiguration {
    @Bean
    @Scope("prototype")
    public Feign.Builder feignBuilder() {
        return Feign.builder();
    }
}
複製程式碼

Feign Hystrix Fallbacks (失敗回退)

Hystrix支援失敗回退的概念,當線路有錯誤是則執行預設程式碼路徑,啟用回退要給@FeignClient設定fallback屬性來實現回退的類名。

編寫一個實現類,實現Client介面

@Component
public class MenuClientFallback implements MenuClient {

    @Override
    public ResponseResult saveOrUpdateMenu(MenuModel menuModel) {
        System.out.println("呼叫服務失敗");
        return new ResponseResult("-1", "呼叫服務失敗");
    }

}
複製程式碼

@FeignClient註解加上fallback屬性,fallback屬性的值就是實現類.class

@FeignClient(name = "WishfulCloud-Authority-Service", fallback=MenuClientFallback.class)
public interface MenuClient {

    @RequestMapping(value = "/menu/saveOrUpdateMenu", method = RequestMethod.POST)
    public ResponseResult saveOrUpdateMenu(@RequestBody MenuModel menuModel);

}
複製程式碼

fallbackFactory

如果需要訪問導致回退觸發的原因,可以在@FeginClient中使用fallbackFactory屬性

java B2B2C springmvc mybatis多租戶電子商城系統

相關文章