(四十七)java版spring cloud+spring boot+redis多租戶社交電子商務平臺--Feign對Hystrix的支持

電子商務平臺源碼請加企鵝求求:三五三六二四七二五九。若是Hystrix在classpath下,默認狀況下將包括Feign與斷路器的全部方法。返回一個com.netflix.hystrix.HystrixCommand去使用,容許你使用反應模式(調用.toObservable或.observe()或異步使用(.queue()))。要禁用Feign的Hystrix支持,設置feign.hystrix.enable=false。bash

要在每一個客戶端上禁用Hystrix支持,建立一個Feign.Builder並將scope設置爲「prototype」,例如:app

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

Feign Hystrix Fallbacks (失敗回退)異步

Hystrix支持失敗回退的概念,當線路有錯誤是則執行默認代碼路徑,啓用回退要給@FeignClient設置fallback屬性來實現回退的類名。ide

編寫一個實現類,實現Client接口ui

@Component
public class MenuClientFallback implements MenuClient {

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

}
複製代碼

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

@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.net

若是須要訪問致使回退觸發的緣由,能夠在@FeginClient中使用fallbackFactory屬性prototype

相關文章
相關標籤/搜索