Azure cosmosdb CosmosDB在具有多主配置的多个区域中更改馈送

Azure cosmosdb CosmosDB在具有多主配置的多个区域中更改馈送,azure-cosmosdb,Azure Cosmosdb,我正在使用的系统有多个环境,每个环境运行在不同的Azure区域。我们的CosmosDB被复制到这些区域,并且启用了多区域写入。我们使用默认的一致性模型(会话) 我们在所有三个区域都部署了使用CosmosDb触发器的azure函数。目前,它们使用相同的租约前缀,这意味着在任何给定时间只有一个函数处理更改。我知道我们可以互相设定 区域具有不同的租约前缀以支持并行处理,但我希望在采取此步骤之前巩固我的理解 我的问题是,在这种情况下,与复制相关的变更提要的行为是什么?根据此链接,数据首先在主区域上收敛,

我正在使用的系统有多个环境,每个环境运行在不同的Azure区域。我们的CosmosDB被复制到这些区域,并且启用了多区域写入。我们使用默认的一致性模型(会话)

我们在所有三个区域都部署了使用CosmosDb触发器的azure函数。目前,它们使用相同的租约前缀,这意味着在任何给定时间只有一个函数处理更改。我知道我们可以互相设定 区域具有不同的租约前缀以支持并行处理,但我希望在采取此步骤之前巩固我的理解

我的问题是,在这种情况下,与复制相关的变更提要的行为是什么?根据此链接,数据首先在主区域上收敛,然后更新更改提要

我读过的其他参考资料似乎表明,每个地区都有自己的变更提要,该提要将在复制时更新。另外,前面的链接建议只在多主服务器的主区域中运行变更提要处理器


在理想情况下,我希望更改每个区域的提要处理器以快速处理本地写入。这些函数将对CosmosDB进行更新,我还希望避免复制问题。我的问题是-多主机配置(以及正确的体系结构)中的实际行为是什么?。使用每个区域的更改馈送处理器“安全”吗?还是应该在主区域中使用单个处理器?

您不能让每个区域的更改馈送处理器只处理本地更改,因为每个区域中的更改馈送包含本地写入和来自其他区域的复制写入


从技术上讲,您可以使用连接到其中一个区域的单个更改提要处理器部署来处理所有区域上的事件。

感谢您尽快回复我并澄清这一点。我曾考虑过使用特定于地区的租约前缀,并用冲突解决策略处理不可避免的冲突,但这似乎毫无意义,而且容易出错。这也是由我最初对高复制延迟的恐惧造成的,部分原因是我找不到可靠的保证,但我认为在100毫秒以下的最坏情况下复制写入,所以这种恐惧似乎是不合理的。再次感谢。