在使用Apache测试spring反应性项目的性能时,我遇到了一个问题。
ab http://localhost:8080/hi结果显示超时。
但对curl http://localhost:8080/hi来说没问题
我的项目使用Spring版本为2.0.0.M6。我会粘贴一些代码。
pom.xml是
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-reactor-netty</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>MyRouter.java
@Component
public class MyRouter {
private static final Logger logger = LoggerFactory.getLogger(MyRouter.class);
@Bean
RouterFunction<ServerResponse> router(PersonHandler personHandler) {
return route(GET("/hi"), request -> ok().body(BodyInserters.fromObject("hello")));
}
}发布于 2017-11-22 16:22:39
这是由于ab在调用netty服务器时的错误。
要解决这个问题,只需在响应头中添加"Connection: closed“即可。但这不是最终的解决办法。
MyRouter.java
@Component
public class MyRouter {
private static final Logger logger = LoggerFactory.getLogger(MyRouter.class);
@Bean
RouterFunction<ServerResponse> router(PersonHandler personHandler) {
return route(GET("/hi"), request -> ok().header("Connection", "close").body(BodyInserters.fromObject("hello")));
}
}https://stackoverflow.com/questions/47438990
复制相似问题