Azure cosmosdb Azure Cosmos db的最小TTL值应该是多少,以便更改提要

Azure cosmosdb Azure Cosmos db的最小TTL值应该是多少,以便更改提要,azure-cosmosdb,azure-cosmosdb-changefeed,Azure Cosmosdb,Azure Cosmosdb Changefeed,若我将azure cosmos db中文档的TTL设置为1秒,那个么它永远不会到达changefeed 原因是什么? 最有可能的情况是,在计算变化差异之前,数据被删除 如果这是原因,TTL的最小值应该是多少,以保证它将在更改馈送中着陆?将TTL设置为1秒,这是一个替换操作。它将出现在更改提要上。关键是,你需要在不到1秒的时间内做出反应(,),否则它会错过它 因此,在TTL上设置的秒数等于检测机制拾取TTL所需的秒数 话虽如此,您实际上可以扭转局面。为什么不在文档上添加一个“delete”标志(软

若我将azure cosmos db中文档的TTL设置为1秒,那个么它永远不会到达changefeed 原因是什么? 最有可能的情况是,在计算变化差异之前,数据被删除


如果这是原因,TTL的最小值应该是多少,以保证它将在更改馈送中着陆?

将TTL设置为1秒,这是一个替换操作。它将出现在更改提要上。关键是,你需要在不到1秒的时间内做出反应(,),否则它会错过它

因此,在TTL上设置的秒数等于检测机制拾取TTL所需的秒数


话虽如此,您实际上可以扭转局面。为什么不在文档上添加一个“delete”标志(软删除),当您的变更提要检测机制接收到它时,将其上的TTL设置为0?这将首先让您检测到删除意图并对其采取行动,然后,将TTL设置为0将删除文档,而无需第二次更改源通知。

据我所知,将TTL设置为1秒将从集合中删除文档,并且删除的文档将不会更改源。这就是为什么要在changefeed中获取已删除的项目,另一种方法是添加软删除标志,并将TTL设置为从changefeed中删除。所以我不明白你是说即使删除的文档也会在changeFeed中被捕获?我不是说删除的文档会被捕获,我说的是,设置TTL的操作是一个更新。该更新操作将在更改提要中保留1秒,直到文档被删除。如果每500毫秒读取一次更改提要,则会检测到更新操作,但如果每5秒读取一次更改提要,则不会检测到更新操作。这就是为什么我提到它取决于您使用的时间间隔。@MatiasQuaranta我们有changefeed处理器监听changefeed,但我们在本地测试了一个1秒的ttl更新没有到达changefeed,是否有任何参数需要设置?@biswpo再次强调,这取决于您的changefeed处理器检查更改的频率。如果它目前没有处理任何事情。请看。我不会依赖CFP在更改消失之前检查更改,主机可能会重新启动,或者处理其他更改,或者只是休眠默认的可自定义5秒钟。这就是为什么建议添加软删除。