瞭解 Azure Cosmos DB 中的多區域寫入
適用於:NoSQL MongoDB Cassandra Gremlin 桌子
若要在部分或完全中斷案例中達成接近零的停機時間,其中一致性不需要保證讀取,最好的方法是設定您的帳戶以進行多區域寫入。 本文涵蓋設定多區域寫入帳戶時要注意的重要概念。
中樞區域
在具有兩個或多個區域的多區域寫入資料庫帳戶中,建立帳戶的第一個區域稱為「中樞」區域。 然後新增至帳戶的其他所有區域稱為「附屬」區域。 如果中樞區域已從帳戶中移除,則會自動選擇下一個區域,依新增的順序選擇為中樞區域。
抵達衛星區域的任何寫入會在本機區域中認可仲裁,然後稍後以異步方式傳送至中樞區域以進行 衝突解決。 一旦寫入至中樞區域並解決衝突,它就會變成「已確認」的寫入。 在此之前,它稱為「暫定」寫入或「未確認」的寫入。 從中樞區域提供的任何寫入會立即變成已確認的寫入。
了解時間戳
多重區域寫入帳戶中的主要差異之一,就是每個實體之間有兩個相關聯的伺服器時間戳值。 第一個是在該區域中寫入實體的伺服器 Epoch 時間。 此時間戳可在單一區域寫入和多區域寫入帳戶中使用。 第二個伺服器時間戳值與確認不存在衝突的 Epoch 時間相關聯,或衝突已在中樞區域中解決。 已確認或衝突解決的寫入已指派衝突解決時間戳(crts
),而未確認或暫定寫入則沒有 crts
。 伺服器所設定的 Cosmos DB 中有兩個時間戳。 主要差異在於帳戶的區域組態是單一寫入或多寫入。
時間戳記 | 意義 | 公開時 |
---|---|---|
_ts |
寫入實體的伺服器 Epoch 時間。 | 一律由所有讀取和查詢 API 公開。 |
crts |
解決多寫入衝突或未確認衝突的 Epoch 時間。 針對多寫入區域組態,此時間戳會定義連續備份和變更摘要的變更順序:
|
只有在要求啟用「新線模型」時,才會公開以響應變更摘要要求。 這是 [所有版本] 的 預設值,並刪除 [變更摘要] 模式。 |
下一步
接下來,您可以閱讀下列文章:
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應