我正在使用Spring STOMP通过RabbitMQ进行Websocket通信。一切都正常,但是simpMessagingTemplate.convertAndSend函数执行非常慢,调用可能需要2-10秒(同步地,阻塞线程)。可能的原因是什么?
RabbitTemplate.convertAndSend不到1秒,但我需要使用Websocket上的STOMP。
更新
我尝试使用ActiveMQ并得到相同的结果。convertAndSend需要2-10秒。
ActiveMQ具有默认配置。
Web socket配置:
@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);
}
}