SimpMessagingTemplate.convertAndSend с RabbitMQ работает очень медленно
Я использую spring STOMP через Websocket с RabbitMQ. Все работает нормально, но simpMessagingTemplate.convertAndSend работает очень медленно, вызов может занять 2-10 секунд (синхронно, поток блоков). Что может быть причиной?
RabbitTemplate.convertAndSend take < 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);
}
}
Ответы
Ответ 1
Проблема решена. Его ошибка в библиотеке io.projectreactor версии 2.0.4.RELEASE. Я перехожу к 2.0.8.RELEASE и его исправленной проблеме. Отправка сообщения теперь займет ~ 50 мс.
<dependency>
<groupId>io.projectreactor</groupId>
<artifactId>reactor-net</artifactId>
<version>2.0.8.RELEASE</version>
</dependency>