ES 查询报错 I/O 异常解决方法: Request cannot be executed; I/O reactor status: STOPPED

增加一个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) {

            }
        };
    }

参考

https://www.shuzhiduo.com/A/kPzONDQadx/


版权声明:本文为cg_Amaz1ng原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。