共用方式為


瞭解 Azure Cosmos DB 中設定多重區域寫入

適用於:NoSQL MongoDB Cassandra Gremlin Table

在不需要保證讀取一致性的部分或全部中斷案例中實現接近零停機時間的最佳方法是將您的帳戶設定為多區域寫入。 本文介紹設定多區域寫入帳戶時需要注意的關鍵概念。

中樞區域

在具有兩個或多個區域的多區域寫入資料庫帳戶中,建立帳戶的第一個區域稱為「中樞」區域。 隨後新增至帳戶的所有其他區域稱為「衛星」區域。 如果從帳戶中移除中樞區域,則會依照新增順序自動選擇下一個區域作為中樞區域。

到達衛星區域的任何寫入都會在本地區域中提交仲裁,然後非同步發送到中心區域以解決衝突。 一旦寫入到達中樞區域並解決衝突,它就成為「已確認」寫入。 在此之前,它被稱為「暫定」寫入或「未經確認」寫入。 從中樞區域提供的任何寫入都會立即成為已確認的寫入。

瞭解時間戳記

多區域寫入帳戶的主要區別之一是存在與每個實體關聯的兩個伺服器時間戳記值。 第一個是在該區域寫入實體的伺服器 Epoch 時間。 此時間戳記在單一區域寫入帳戶和多區域寫入帳戶中均可使用。 第二伺服器時間戳記值與確認不存在衝突或在中樞區域中解決衝突的 Epoch 時間相關聯。 已確認或已解決衝突的寫入指派有衝突解決時間戳記 (crts),而未確認或暫定寫入則沒有 crts。 Cosmos DB 中有兩個由伺服器設定的時間戳記。 主要區別在於帳戶的區域設定是單一寫入還是多重寫入。

時間戳記 意義 當暴露時
_ts 寫入實體的伺服器 Epoch 時間。 始終由所有讀取和查詢 API 公開。
crts 解決多重寫入衝突或確認不存在衝突的 Epoch 時間。 對於多重寫入區域設定,此時間戳記定義變更來源的變更順序:

  • 用於尋找變更摘要請求的開始時間
  • 用作變更摘要回應中的排序順序。
僅當請求啟用「新線路模型」時才公開以回應變更摘要請求。 這是所有版本的預設設置,並刪除變更摘要模式。

下一步

接下來,您可以閱讀下列文章: