標籤:clinet ram auto second new fegin pac set reflect
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) // 逾時配置 ); } }); }}
feginclinet中設定hystrix的參數