В чем разница между квотами отставания и TTL - PullRequest
1 голос
/ 16 марта 2020

Из 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 превышен, он не будет "сохранять" его, значит, сделать его подтвержденным? или просто выбросить?

1 Ответ

1 голос
/ 17 марта 2020

И если мы будем использовать customer_backlog_eviction, это сообщение будет удалено из задела, но вопрос, считается ли это подтвержденным или нет? поэтому первая политика хранения вступает в силу?

Сообщение будет подтверждено и помечено для удаления. Тогда политика сохранения для подтвержденных сообщений в какой-то момент вступит в действие в зависимости от конфигурации.

И TTL, если сообщение не будет подтверждено в течение некоторого времени, будет ли оно удалено из всех журналов ожидания? и затем считается подтвержденным, а затем разрешается обработать его первой политикой хранения?

TTL должен применяться ко всем журналам ожидания, а устаревшие неиспользованные сообщения будут автоматически подтверждаться. И снова вступает в силу политика хранения подтвержденных сообщений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...