JMS: когда долговременное сообщение удалено из темы
Я использую ActiveMQ JMS с Spring и просто переключился с модели очереди на модель темы, потому что число моих клиентов JMS увеличилось с одного до многих. Подписчики тем должны быть долговечными, потому что клиенты могут стать недоступными в некоторых обстоятельствах.
Я не понимаю, когда постоянное сообщение удаляется из темы. Базовый движок не знает, сколько подписчиков может получить по этой теме, поэтому когда он удаляет сообщение из своей внутренней базы данных? Это сделано на основе времени?
1 ответ
Если вы зарегистрируете нового надежного подписчика в теме, сервер-брокер будет отслеживать эту подписку и хранить сообщения до тех пор, пока каждый подписчик (с уникальным идентификатором подписчика) не будет успешно использовать сообщение.
Это очень похоже на копирование сообщения в уникальную очередь для каждого получателя.
Базовый движок не знает, сколько подписчиков может получить по этой теме
- Да, это известно, так как подписки долговечны