2016-11-02 10 views
12

私はRabbitMQでWebsocketでspring STOMPを使用しています。すべて正常に動作しますが、simpMessagingTemplate.convertAndSendは非常に遅く動作し、呼び出しには2〜10秒かかることがあります(同期的にスレッドをブロックします)。理由は何でしょうか?SimpMessagingTemplate.convertAndSend with RabbitMQは非常に遅いです

RabbitTemplate.convertAndSend < 1Sを取るが、私はオーバー踏みつける必要のWebSocket ..

UPDATE私はActiveMQのを使用しようと同じ結果を得る

。 convertAndSendは2〜10秒かかります

ActiveMQはデフォルト設定です。

ウェブソケットの設定:

@Configuration 
@EnableWebSocket 
@EnableWebSocketMessageBroker 
class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer { 

    @Override 
    void configureMessageBroker(MessageBrokerRegistry config) { 
     config.enableStompBrokerRelay("/topic", "/queue", "/exchange"); 
     config.setApplicationDestinationPrefixes("/topic", "/queue"); // prefix in client queries 
     config.setUserDestinationPrefix("/user"); 
    } 

    @Override 
    void registerStompEndpoints(StompEndpointRegistry registry) { 
     registry.addEndpoint("/board").withSockJS() 
    } 

    @Override 
    void configureWebSocketTransport(WebSocketTransportRegistration registration) { 
     registration.setMessageSizeLimit(8 * 1024); 
    } 
} 
+0

春バージョンは使用していますか?あなたは変換の前後にメッセージの例を挙げることができますか? –

+0

使用春1.3.5 –

答えて

8

問題は解決しました。 io.projectreactorライブラリバージョン2.0.4.RELEASEのバグ。私は2.0.8.RELEASEとその固定問題に変わります。送信メッセージは〜50msかかるでしょう。

<dependency> 
     <groupId>io.projectreactor</groupId> 
     <artifactId>reactor-net</artifactId> 
     <version>2.0.8.RELEASE</version> 
    </dependency>