共用方式為

Azure Cosmos DB 中的多区域写入

若要在不需要读取一致性时在部分或完全中断期间实现近零停机时间,请为多区域写入设置帐户。 本文介绍在设置多区域写入帐户时要了解的关键概念。

中心区域

在具有两个或多个区域的多区域写入数据库帐户中,创建帐户的第一个区域称为“中心”区域。 添加到帐户的所有其他区域称为“附属”区域。 如果从帐户中删除中心区域,则会自动选择下一个区域(按照添加它们的顺序)作为中心区域。

到达附属区域的任何写入都是在本地区域中提交的仲裁,然后发送到中心区域以异步 方式解决冲突 。 当写入进入中心区域并发生冲突解决时,它将成为“确认”写入。 在此之前,这是一个“暂定”或“未确认”的写入。 从中心区域提供的任何写入都会立即成为已确认的写入。

了解时间戳

多区域写入帐户为每个实体使用两个服务器时间戳值。 第一个是在该区域中写入实体的服务器纪元时间。 在单区域写入帐户和多区域写入帐户中看到此时间戳。 第二个服务器时间戳是确认缺少冲突或中心区域中已修复冲突的时期时间。 已确认或冲突修复的写入将获取冲突解决时间戳(crts),但未确认或暂定写入不会得到 crts。 Cosmos DB 在服务器上设置两个时间戳。 主要区别在于帐户是使用单写入还是多写入区域配置。

时间戳 含义 公开情况
_ts 写入实体的服务器纪元时间 始终由所有读取和查询 API 公开。
crts 多写入冲突已修复或未确认冲突的时期时间。 对于多写入区域配置,此时间戳设置更改源的顺序:查找更改源请求的开始时间,在更改源响应中设置排序顺序。 仅在请求启用“新建线路模型”时,更改源响应中才会显示。此行为是 “所有版本和删除” 更改源模式的默认值。