ActiveMQ new topi c, без потребителя, не отбрасывает сообщения - PullRequest
0 голосов
/ 05 февраля 2020

Я создаю программное решение, которое создает темы JMS для каждой новой категории. Топи c создается, когда интегрируется первый раунд данных, и его необходимо соединить. Постоянные подписки на эту топику c создаются потребителями, но только через некоторое время после создания категории и первых данных. Все данные, принадлежащие категории, отправляются потребителям в виде сообщений, чтобы они тоже обновлялись.

Между моментом создания категории и созданием долговременных подписок было бы лучше, если бы сообщения отбрасываются. Потребитель сначала выполняет первоначальную синхронизацию c существующих данных, затем создает долговременную подписку и прослушивает сообщения создания / обновления.

Один из вариантов - разрешить потребителям создавать topi c при регистрации. первая долговременная подписка. В то же время, если данные добавляются в категорию, они не отправляются производителями, таким образом, не создавая также топи c.

Другим вариантом будет отказ от сообщений, если не существует потребителей. Я не говорю об активных потребителях, я говорю об отсутствии потребителей вообще. Любая идея, если это может быть реализовано? Поскольку на topi c нет длительных / недолговечных подписок, я ожидал, что сообщения будут автоматически отбрасываться, но я ошибся.

Какой вариант вы бы выбрали?

Если вы посмотрите на изображение ниже, вы увидите топи c, в которой никогда не было подписчиков с 4498 сообщениями в очереди. Я неправильно интерпретирую эту информацию?

enter image description here

1 Ответ

1 голос
/ 06 февраля 2020

Сообщения, отправленные на topi c, когда нет подписок (длительных или нет), должны быть отброшены. Это ожидаемое поведение.

Метрику «Сообщения в очереди», отображаемую в веб-консоли, не означает, что, по вашему мнению, это означает. Этот показатель c просто указывает общее количество сообщений, отправленных в topi c с момента последнего перезапуска. Он не указывает, сколько сообщений было сохранено в подписках на эту топику c (если есть).

...