Java 调用Elasticsearch报错java.lang.IllegalStateException: Request cannot be executed; I/O reactor statu

这篇具有很好参考价值的文章主要介绍了Java 调用Elasticsearch报错java.lang.IllegalStateException: Request cannot be executed; I/O reactor statu。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、问题描述

线上ES查询服务出现奇怪的问题,调用es查询数据的接口进行过一次查询,过几分钟之后再次用这个接口进行查询就不行了。

二、报错排查

简短报错:java.lang.IllegalStateException: Request cannot be executed; I/O reactor status: STOPPED

2023-09-28 06:58:29.166 ERROR 5612 --- [nio-8888-exec-2] c.c.e.service.impl.MailServiceImpl       : java.lang.RuntimeException: Request cannot be executed; I/O reactor status: STOPPED
2023-09-28 06:58:29.168 ERROR 5612 --- [nio-8888-exec-2] o.a.c.c.C.[.[.[/es].[dispatcherServlet]  : Servlet.service() for servlet [dispatcherServlet] in context with path [/es] threw exception [Request processing failed; nested exception is java.lang.RuntimeException: java.lang.RuntimeException: Request cannot be executed; I/O reactor status: STOPPED] with root cause

java.lang.IllegalStateException: Request cannot be executed; I/O reactor status: STOPPED
	at org.apache.http.util.Asserts.check(Asserts.java:46) ~[httpcore-4.4.14.jar!/:4.4.14]
	at org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase.ensureRunning(CloseableHttpAsyncClientBase.java:90) ~[httpasyncclient-4.1.4.jar!/:4.1.4]
	at org.apache.http.impl.nio.client.InternalHttpAsyncClient.execute(InternalHttpAsyncClient.java:123) ~[httpasyncclient-4.1.4.jar!/:4.1.4]
	at org.elasticsearch.client.RestClient.performRequest(RestClient.java:279) ~[elasticsearch-rest-client-7.13.2.jar!/:7.13.2]
	at org.elasticsearch.client.RestClient.performRequest(RestClient.java:270) ~[elasticsearch-rest-client-7.13.2.jar!/:7.13.2]
	at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1654) ~[elasticsearch-rest-high-level-client-7.13.2.jar!/:7.13.2]
	at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1624) ~[elasticsearch-rest-high-level-client-7.13.2.jar!/:7.13.2]
	at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1594) ~[elasticsearch-rest-high-level-client-7.13.2.jar!/:7.13.2]
	at org.elasticsearch.client.RestHighLevelClient.search(RestHighLevelClient.java:1110) ~[elasticsearch-rest-high-level-client-7.13.2.jar!/:7.13.2]
	at com.cma.elasticsearch.service.impl.MailServiceImpl.findByMbidAndKeyword(MailServiceImpl.java:72) ~[classes!/:1.0.4-RELEASE]
	at com.cma.elasticsearch.controller.MailController.findByMbidAndKeywordV1(MailController.java:94) ~[classes!/:1.0.4-RELEASE]
	at sun.reflect.GeneratedMethodAccessor52.invoke(Unknown Source) ~[na:na]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_332]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_332]

三、解决问题

经过排查发现可能是出现异常RestHighLevelClient提前关闭,导致后续接口调用出现问题。

1.下面的代码如果到抛出异常的情况会导致RestHighLevelClient停止和关闭

java.lang.illegalstateexception: request cannot be executed; i/o reactor sta,Elasticsearch,Java,java,开发语言

 2.如果仍然有问题,可能就是httpclient版本低的问题,建议是pom修改升级版本

我这里是ES 7.13.3,升级后的httpclient是4.4.14。可以参考下面的依赖

		</dependency>
		<!-- httpclient、httpcore、 httpcore-nio这三个依赖 -->
			<dependency>
	    <groupId>org.apache.httpcomponents</groupId>
	    <artifactId>httpclient</artifactId>
	    <version>4.5.13</version>
	</dependency>
	
	<dependency>
	    <groupId>org.apache.httpcomponents</groupId>
	    <artifactId>httpcore-nio</artifactId>
	    <version>4.4.14</version>
	</dependency>
	<!-- httpclient、httpcore、 httpcore-nio这三个依赖 -->
	<dependency>
	    <groupId>org.apache.httpcomponents</groupId>
	    <artifactId>httpcore</artifactId>
	    <version>4.4.14</version>
	</dependency>

 文章来源地址https://www.toymoban.com/news/detail-830632.html

 

到了这里,关于Java 调用Elasticsearch报错java.lang.IllegalStateException: Request cannot be executed; I/O reactor statu的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java IDEA java.lang.IllegalStateException: Failed to introspect Class报错原因和解决办法

    发现是因为 org.redisson:redisson.spring.boot.starter 3.10.6这个包引入不进来导致的报错 尝试了clean invalid caches and restart都没法解决后 放大招,查看maven右侧Dependencies每一个点进去看是否有jar包冲突,发现有一个包里有一个redis的包, 怀疑jar包冲突,尝试把这个包exclusion掉,可以成功运

    2024年02月04日
    浏览(39)
  • 【踩坑日记】feign调用时报错:java.lang.IllegalStateException: RequestParam.value() was empty on parameter 0

    SpringCloud微服务,使用feign进行服务间的调用 服务启动后出现异常: IllegalStateException: RequestParam.value() was empty on parameter 0 非法状态异常。大概意思是:第 0 个参数绑定的 value 值为空。也就是说第 0 个参数没有正确的绑定请求的参数映射。 这个错误产生的原因是我们使用了

    2024年02月05日
    浏览(28)
  • Logstash报错:Logstash - java.lang.IllegalStateException: Logstash stopped processing because of an err

      最近尝试使用Elasticsearch和IK结合Logstash链接mysql,测试Logstash出现如下报错信息:  首先输入命令 :   logstash -e \\\'input {stdin{}} output {stdout{}}\\\' 命令感觉都是正确的,但是结果却是: 着实让我有点意外,查阅很多资料说执行命令中包含中文,可是我一个个的都从新敲了,确保都

    2024年02月11日
    浏览(32)
  • 深入解析java.lang.IllegalStateException异常

    异常是程序在执行过程中遇到的错误或异常情况。在Java中,异常是指在程序运行期间发生的错误,它可以打破程序的正常流程,并且可能导致程序终止。 异常分为两种类型:受检异常(checked exception)和非受检异常(unchecked exception)。 受检异常:在方法声明中必须显式地声

    2024年02月10日
    浏览(34)
  • java.lang.IllegalStateException异常原因和解决

    Iterator.remove() 迭代删除 引发 1. Iterator.remove() 迭代删除 引发 场景示例 问题分析

    2024年02月16日
    浏览(30)
  • 解决Caused by: java.lang.IllegalStateException:

    目录 问题描述 解决方案 1. 修改JVM的-Xss参数 2. 检查循环继承依赖项 3. 更新相关库和依赖 总结 在使用Java开发Web应用程序时,我们有时会遇到​ ​Caused by: java.lang.IllegalStateException​ ​​异常,其中包含一个关于StackOverflow错误的描述。这种错误可能会导致无法完成对Web应用程

    2024年02月03日
    浏览(38)
  • 解决java.lang.IllegalStateException: Duplicate key异常

    项目重启后突然报这个异常 看日志应该是在初始化字典,源代码 这里的操作是把词典list转换成map,然后key冲突。 但我比对了一下数据,没有找到重复的dictValue,报这个错有点莫名其妙。 最后的解决办法参考了其他网友,得以顺利解决,最后上修改后的代码 Collectors.toMap 增

    2024年02月15日
    浏览(37)
  • 已解决java.lang.IllegalStateException: Duplicate key

    已解决java.lang.IllegalStateException: Duplicate key java.lang.IllegalStateException: Duplicate key java.lang.IllegalStateException: Duplicate key 是由于在使用 Map 或 Set 时,试图将一个已经存在的键值或元素添加到集合中而引发的异常。 下滑查看解决方法 要解决这个问题,可以采取以下步骤: 确保你使用

    2024年02月07日
    浏览(32)
  • java.lang.IllegalStateException:Failed to load ApplicationContext

    无法加载应用程序上下文。这可能有许多原因,例如配置文件不正确或缺少依赖项。 解决步骤: 检查是否存在所有所需的依赖项,并确保它们在项目的pom.xml文件中正确配置。 检查配置文件(例如application.properties或application.yml)是否位于正确的位置,并且其内容是否已正确格式化

    2024年02月07日
    浏览(44)
  • java.lang.IllegalStateException: Failed to load ApplicationContext

    mvn clean install的时候报的如下异常: 紧接着又往下翻了一下日志还有一个这个错误 按正常来说通过 @@ 可以取pom当中的properties标签的值呀。但是可以发现编译过后的application当中的值并没有被替换。 (1)我先是将server.port=@server.port@替换成了server.port=8082,然后clean install直接成

    2024年02月07日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包