2017-11-22 8 views
1

Apache Benchでスプリングレスキュープロジェクトのパフォーマンスをテストする際に問題が発生しました。Apache BenchでSpringブートWebfluxのパフォーマンスをテストできませんでした

ab http://localhost:8080/hi 

結果にタイムアウトが表示されます。

しかしcurl http://localhost:8080/hi

私のプロジェクトは、春のブートバージョンを使用するために、それはOKですが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

Apacheのベンチには接続せずに応答を扱うことができませんでした。 ただし、キープアライブリクエストの場合、どのように処理するのですか? 近い将来にバグが修正されることを本当に願っています。 – Jomy

関連する問題