1

根据 NServiceBus Azure Cosmos DB 持久性文档,发件箱重复数据删除数据默认保留 7 天。但是,对于大容量事务数据库,这可以轻松地在一天内添加数百个发件箱文档。我知道我们可以更改默认设置以减少发件箱ttl。但是,在此之前,我想了解以下内容:

  • 在 Cosmos DB 中将发件箱文档保留 7 天有什么意义?
  • ttl将发件箱文档的时间缩短到 4 天会有什么影响?这是否意味着如果一条消息失败了,它只能在接下来的 4 天内恢复?如果是,有没有办法为立即成功的交易清理发件箱记录?
4

1 回答 1

2

在 Cosmos DB 中将发件箱文档保留 7 天有什么意义?

这是默认值。选择它是为了安全起见,并确保在 7 天内没有重复处理,这是一个相当安全的时间范围。

将发件箱文档的 ttl 减少到 4 天有什么影响?

如果您将 TTL 减少到 4 天,并且在该期限之后有可能收到重复的消息,则将处理而不是丢弃重复的消息。

这是否意味着如果一条消息失败了,它只能在接下来的 4 天内恢复?

发件箱功能与删除邮件无关。它用于对传入消息进行重复数据删除,以避免不必要的重新处理。

如果是,有没有办法为立即成功的交易清理发件箱记录?

您可以将 TTL 设置为非常低的值,但是您可能会遇到重复重新处理的风险,因为这与传入消息处理的成功或不成功无关,而是您无法控制的重复。更不用说发件箱功能有助于减少在分派失败的情况下重试传入消息时不必要的处理程序执行。

于 2021-08-09T03:26:40.733 回答