若要在部分或完全中断期间实现近零停机时间,且不需要读取一致性,请将您的帐户设置为支持多区域写入。 本文介绍在设置多区域写入帐户时要了解的关键概念。
中心区域
在具有两个或多个区域的多区域写入数据库帐户中,创建帐户的第一个区域称为“中心”区域。 添加到帐户的所有其他区域称为“附属”区域。 如果从帐户中删除中心区域,则会自动选择下一个区域(按照添加它们的顺序)作为中心区域。
到达卫星区域的任何写入首先在本地区域达到仲裁提交一致,然后以异步方式发送到中心区域进行冲突解决。 当写入进入 Hub 区域并解决冲突时,它将成为“确认”写入。 在此之前,这是一个“暂定”或“未确认”的写入。 从中心区域提供的任何写入都会立即成为已确认的写入。
了解时间戳
多区域写入帐户为每个实体使用两个服务器时间戳值。 第一个是在该区域中写入实体的服务器纪元时间。 您将在单区域写入帐户和多区域写入帐户中看到此时间戳。 第二个服务器时间戳是确认没有冲突或在集线器区域中已修复冲突时的纪元时间。 已确认或冲突修复的写入将获取冲突解决时间戳(crts),但未确认或暂定写入不会得到 crts。 Cosmos DB 在服务器上设置两个时间戳。 主要区别在于帐户是使用单写入还是多写入区域配置。
| 时间戳 | 含义 | 当暴露时 |
|---|---|---|
_ts |
写入实体的服务器纪元时间 | 始终由所有读取和查询 API 公开。 |
crts |
多写入冲突已修复或确认不存在冲突的纪元时间。 对于多写入区域配置,此时间戳设置更改源的顺序:查找更改源请求的开始时间,在更改源响应中设置排序顺序。 | 仅在请求启用“新线路模型”时,更改源反馈中才会显示。此行为是“所有版本和删除”更改源模式的默认行为。 |