- maven 依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
<version>3.1.3</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
<version>2.2.10.RELEASE</version>
</dependency>
- 配置
feign:
circuitbreaker:
enabled: true
client:
config:
default:
readTimeout: 500
connectTimeout: 500
hystrix:
command:
default:
execution:
isolation:
thread:
timeoutInMilliseconds: 500
- 代码
@FeignClient(name = "juejin-server", contextId = "juejinClient", fallbackFactory = JuejinClientHystrix.class)
public interface JuejinClient {
@PostMapping("selectArticleList")
List<JuejinDto> selectArticleList(@RequestBody JuejinRequest request);
}
@Component
public class JuejinClientHystrix implements FallbackFactory<JuejinClient> {
@Override
public JuejinClient create(Throwable throwable) {
return new JuejinClient() {
@Override
public List<JuejinDto> selectArticleList(JuejinRequest request) {
return Collections.emptyList();
}
};
}
}