2017-11-22 7 views
1

Apache Bench으로 스프링 반응 프로젝트의 성능을 테스트 할 때 문제가 발생했습니다.Apache Bench로 스프링 부트 Webflux 성능을 테스트 할 수 없습니다.

ab http://localhost:8080/hi 

결과에 시간 초과가 표시됩니다.

하지만 curl http://localhost:8080/hi

내 프로젝트에 대한 확인의 봄 부트 버전 2.0.0.M6이다 사용합니다. 일부 코드를 붙여 넣습니다.

의 pom.xml 그것은 인해 AB의 버그 콜 그물코 서버로의

<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"))); 
    } 
} 

답변

1

입니다.

해결 방법은 응답 헤더에 "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"))); 
    } 
} 
+0

아파치 벤치는 연결하지 않고 응답을 처리 할 수 ​​있습니다. 그러나 Keep/Alive 요청 인 경우 처리 방법은 무엇입니까? 버그가 곧 수정 될 수 있기를 바랍니다. – Jomy