Итак, я создаю одновременных потребителей для темы, то есть нескольких слушателей. Я настраиваю их, чтобы они были прочными.
@Bean
public DefaultMessageListenerContainer listenerContainers() {
DefaultMessageListenerContainer container = new DefaultMessageListenerContainer();
container.setConnectionFactory(connectionFactory());
container.setDestinationName(COMMENT_QUEUE);
container.setPubSubDomain(true);
container.setSessionTransacted(true);
container.setConcurrentConsumers(2);
container.setSubscriptionDurable(true);
container.setMessageListener(datafileSubscriber);
container.start();
return container;
}
Я думаю, что сценарий использования длительного потребителя
У меня есть процесс, который публикует сообщение, и сообщение принимается слушателями. Я подумал, что если кто-то остановит процесс, и я снова его перезапущу, я не потеряю сообщения и их обработку из-за постоянных потребителей.
Это правильно?
Я не потеряю сообщения, потому что сообщения находятся в KahaDB, и после перезапуска процесса он будет повторно отправлять сообщения, которые не были полностью обработаны, слушателям, потому что они долговечны. Это правильное объяснение?