Из do c: https://pulsar.apache.org/docs/en/cookbooks-retention-expiry/#get -the-ttl-configuration-for-a-namespace , это немного сбивает с толку разницу между квотами невыполненных заданий и TTL.
Как я понимаю до сих пор, брокер приходит сообщение, и брокер узнает все подписки на эту топику c, извлечет их отставание и поместит сообщение в эти очереди. Если это сообщение подтверждается одной подпиской, оно будет удалено из его невыполненного задания (невыполненное задание для каждой подписки). Если сообщение не находится в каком-либо резерве (означает, что все подписки подтвердили его), то это сообщение считается подтвержденным, и затем включается политика хранения, чтобы решить, нужно ли его удалить или сохранить в течение некоторого времени.
Если в течение некоторого времени сообщение не подтверждается в одном бэклоге, и квота в бэклоге достигает ограничения по размеру, тогда начинает действовать политика хранения бэклога. Так что это больше размер, чем время. И если мы используем consumer_backlog_eviction
, это сообщение будет удалено из задела, но вопрос, считается ли это подтвержденным или нет? Итак, запускается первая политика хранения?
И TTL, если сообщение какое-то время не подтверждается, будет ли оно удалено из всех журналов ожидания? и затем считается подтвержденным, а затем позволяет первой политике хранения обрабатывать его?
ОБНОВЛЕНИЕ:
, чтобы быть более точным в этом вопросе:
В документе о квотах отставания говорится: :
consumer_backlog_eviction
: Посредник начнет отбрасывать сообщения о невыполненных работах
Отменить средства, делая их подтвержденными? Чтобы глобальная политика хранения могла сработать?
producer_request_hold
: брокер будет удерживать, а не сохранять полезную нагрузку запроса на выдачу
Это говорит о том, что он будет не помещать новые сообщения в очередь, но для этих новых поступающих сообщений они автоматически подтверждаются или нет (скажем, на данный момент существует только одна подписка)? И блокирует ли это реального производителя (я полагаю, нет, просто брокер больше не будет помещать новые сообщения в резерв)
(для TTL) Если дисковое пространство вызывает беспокойство, вы Можно установить время жизни (TTL), которое определяет, как долго будут сохраняться неподтвержденные сообщения.
Опять же, если TTL превышен, он не будет "сохранять" его, значит, сделать его подтвержденным? или просто выбросить?