增加一个restClientBuilderCustomizer的bean
@Bean
public RestClientBuilderCustomizer autoRecreateRestClientBuilder() {
return new RestClientBuilderCustomizer() {
@Override
public void customize(HttpAsyncClientBuilder httpClientBuilder) {
try {
DefaultConnectingIOReactor ioReactor = new DefaultConnectingIOReactor();
ioReactor.setExceptionHandler(new IOReactorExceptionHandler() {
private final Logger log = LoggerFactory.getLogger(this.getClass());
@Override
public boolean handle(IOException e) {
log.error("esRestClient ioException", e);
return false;
}
@Override
public boolean handle(RuntimeException e) {
log.error("esRestClient runtimeException", e);
return false;
}
});
httpClientBuilder.setConnectionManager(
new PoolingNHttpClientConnectionManager(ioReactor));
} catch (IOReactorException e) {
throw new RuntimeException(e);
}
}
@Override
public void customize(RestClientBuilder restClientBuilder) {
}
};
}
参考