问题产生:
这个问题是在springboot进行接口调用时出现的,springboot内置的是tomcat容器,对于一般的请求和响应处理的还可以。
我在处理代码的流式SSE响应时,如果突然中断这个流,下次再来请求时就会出现CoyoteAdapter RecycleRequiredException异常,这个在网络上复用了原来的链路,netstat时可以看到断开的连接还在,请求就会复用,导致出现问题。
处理方式:将springboot的tomcat容器替换成undertow容器,可以更好的处理SSE流式响应。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-core</artifactId> </exclusion> </exclusions> </dependency> <!-- https://mvnrepository.com/artifact/io.undertow/undertow-core --> <dependency> <groupId>io.undertow</groupId> <artifactId>undertow-core</artifactId> <version>2.2.31.Final</version> </dependency>