Azure cosmosdb Cosmos DB更改提要-什么';延迟/延迟是多少?

Azure cosmosdb Cosmos DB更改提要-什么';延迟/延迟是多少?,azure-cosmosdb,Azure Cosmosdb,从创建/更新文档到Cosmos DB Change Feed处理器接收文档之间的“正常”延迟是多少 我们所做的一些操作分为两个阶段:创建,然后几毫秒后更新 我知道只有文档的最新版本才会出现在更改提要中。但是如果更改提要是超级快速的,我将最终处理文档的两个版本。因为我只关心“最终”版本,所以比必要的使用率高出一倍 当然,我会设计我的处理器,让它不在乎。当然,我怀疑是否有任何一成不变的保证。但我还是很好奇,不知道以前是否有人有过经验(并注意过这个细节)。再过几周,我可能也能发布我自己的经历 编辑:四

从创建/更新文档到Cosmos DB Change Feed处理器接收文档之间的“正常”延迟是多少

我们所做的一些操作分为两个阶段:创建,然后几毫秒后更新

我知道只有文档的最新版本才会出现在更改提要中。但是如果更改提要是超级快速的,我将最终处理文档的两个版本。因为我只关心“最终”版本,所以比必要的使用率高出一倍

当然,我会设计我的处理器,让它不在乎。当然,我怀疑是否有任何一成不变的保证。但我还是很好奇,不知道以前是否有人有过经验(并注意过这个细节)。再过几周,我可能也能发布我自己的经历


编辑:四处挖掘,我发现了一个问题。默认情况下看起来是5秒。所以我想答案是“延迟/延迟是我想要的”。这在RU使用方面是方便的,但仅仅因为它是一个轮询架构就有点令人失望。不过有道理:)

你的问题实际上是双重的。Change Feed是Cosmos DB中的一项功能,它将在发生更改时发布更改,如下所述:

更改日志中仅包含给定项的最新更改。中间更改可能不可用

因此,如果插入和更新操作发生在检查更改之间,则可能会得到更新版本,而不是两个单独的更改

另一方面,您似乎正在使用ChangeFeed处理器,这是一个帮助您使用此端点的库(它是其中之一)。正如您所提到的,CFP库在引擎盖下充当轮询机制:

  • 它轮询更改并将其发送到您的
    ProcessChangesSync
    实现,因此从开发人员的角度来看,它就像一个推送模型
  • processchangesync
    实现完成后,它将立即轮询更多更改,不会延迟
  • 如果有更多更改,则返回到#1。如果没有更多更改,它将保持您所描述的配置的
    FeedPollTime
    ,然后再次轮询
  • 这种差异很重要,因为如果您的更改是连续的,那么更改检测中唯一的延迟来自
    处理更改的速度sync
    实现可以处理这些更改