Важность хранения записи исходящего документа NServiceBus в течение 7 дней в CosmosDB

avatar
Ankit Vijay
8 августа 2021 в 23:07
143
1
1

Согласно документации сохраняемости NServiceBus Azure Cosmos DB, исходящие данные дедупликации хранятся по умолчанию в течение 7 дней. Однако это может легко добавить сотни исходящих документов в день для базы данных транзакций с большим объемом. Насколько я понимаю, мы можем изменить настройки по умолчанию, чтобы уменьшить папку исходящих сообщений ttl. Однако, прежде чем сделать это, я хотел бы понять следующее:

  • Какое значение имеет хранение исходящего документа в течение 7 дней в Cosmos DB?
  • Как повлияет сокращение ttl исходящего документа, скажем, до 4 дней? Означает ли это, что если сообщение не удалось, его можно восстановить только в течение следующих 4 дней? Если да, есть ли способ немедленно очистить исходящие записи для успешных транзакций?
Источник

Ответы (1)

avatar
Sean Feldman
9 августа 2021 в 03:26
2

Какое значение имеет хранение исходящего документа в течение 7 дней в Cosmos DB?

Это значение по умолчанию. Он выбран из соображений безопасности и гарантирует, что никакие дубликаты не будут повторно обработаны в течение 7 дней, что является довольно безопасным временным диапазоном.

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

Если вы уменьшите срок жизни до 4 дней и есть вероятность, что по истечении этого периода придет дубликат сообщения, дубликат будет обработан, а не удален.

Означает ли это, что если сообщение не удалось восстановить, его можно будет восстановить только в течение следующих 4 дней?

Функция "Исходящие" не предназначена для удаления сообщений. Он используется для дедупликации входящих сообщений, чтобы избежать ненужной повторной обработки.

Если да, есть ли способ немедленно очистить запись об исходящих успешных транзакциях?

Вы можете установить для TTL очень низкое значение, но тогда вы рискуете столкнуться с повторяющейся повторной обработкой, поскольку это не об успешной или неудачной обработке входящих сообщений, а о дубликатах, которые вы не можете контролировать. Не говоря уже о том, что функция исходящих сообщений помогает уменьшить ненужное выполнение обработчика при повторных попытках входящих сообщений в случае сбоя отправки.