feginclinet中设置hystrix的参数
package com.example.demo; import com.netflix.hystrix.HystrixCommand; //import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand; import com.netflix.hystrix.HystrixCommandGroupKey; import com.netflix.hystrix.HystrixCommandProperties; import feign.Feign; import feign.Request; import feign.Retryer; import feign.Target; import feign.hystrix.HystrixFeign; import feign.hystrix.SetterFactory; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Scope; import java.lang.reflect.Method; @Configuration @ConditionalOnClass({ HystrixCommand.class, HystrixFeign.class }) public class FeginConfiguration { public static int connectTimeOutMillis = 5000;//超时时间 public static int readTimeOutMillis = 5000; @Bean public Request.Options options() { return new Request.Options(connectTimeOutMillis, readTimeOutMillis); } //自定义重试次数 @Bean public Retryer feignRetryer(){ Retryer retryer = new Retryer.Default(100, 1000, 4); return retryer; } //hystrix 超时时间 @Bean public Feign.Builder feignHystrixBuilder() { return HystrixFeign.builder().setterFactory(new SetterFactory() { @Override public HystrixCommand.Setter create(Target<?> target, Method method) { return HystrixCommand.Setter .withGroupKey(HystrixCommandGroupKey.Factory.asKey(SchedualServiceHi.class.getSimpleName()))// 控制 RemoteProductService 下,所有方法的Hystrix Configuration .andCommandPropertiesDefaults( HystrixCommandProperties.Setter().withExecutionTimeoutInMilliseconds(10000) // 超时配置 ); } }); } }