簡體   English   中英

Azure Cosmos DB:如何為特定容器創建只讀副本

[英]Azure Cosmos DB: How to create read replicas for a specific container

Azure Cosmos DB ,是否可以在數據庫/容器/分區鍵級別創建多個只讀副本以提高讀取吞吐量? 我有幾個容器,每個邏輯分區鍵需要超過 10K RU/s,現在重新設計我的分區鍵邏輯不是一個選項。 因此,我正在考慮多次復制數據(最終一致性很好)。

我知道 Azure 提供Cosmos DB全球分發,但我正在尋找的是同一區域內的復制,理想情況下不是完整的數據庫復制,而是容器復制。 容器級復制將更具成本效益,因為我不需要復制大多數容器,而我需要最多復制其他容器 10 次。

雖然可用的選項很少:

在同一區域內沒有復制選項,但您可以使用 Change Feed 復制到另一個數據庫,並考慮重新設計,僅用於讀取查詢。 盡管使用預覽中的無服務器選項或也使用自動縮放選項可能是一個更好的主意。 但您也可以查看預配置吞吐量並將預配置 RU 保留 1 年或 3 年,並像在 PAYG 模型中一樣按月支付,但有很大的折扣。 一種選擇也是從運行主數據庫和應用程序的區域中的 VM 進行延遲測試,並找出最近的區域 wrt Latency (ms),然后如果延遲是可以承受的,那么您可以使用全局復制到該區域區域並開始使用它。 我使用工具進行延遲測試,但從運行 app\\DB 的區域內的 VM 運行它。

我的猜測是您的查詢都是跨分區的,並且每個查詢都消耗大量 RU/s。 不幸的是,Cosmos DB 中沒有任何功能可以按照您的要求提供幫助。

您的選擇是創建更多容器並使用更改源在區域內將數據復制到它們,然后添加某種路由機制來路由應用程序中的請求。 您當然只會獲得最終的一致性,因此如果您有高並發需求,這將不起作用。 那么你唯一真正的選擇就是解決你今天設計的可擴展性問題。

這個實時數據遷移器可以提供幫助。 您可以使用它來使第二個容器與您的原始容器保持同步,這將允許您最終將第一個設計遷移到另一個可以更好擴展的設計。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM