Azure Comos DB是什么?
Azure Cosmos DB 是多區域分布式多模型數據庫服務。
RU的基本概念:
預配吞吐量以“請求單位數/秒 (RU/s 或復數形式 RUs)
可將每秒 RU 數視為吞吐量的貨幣,它抽象化了執行 Azure Cosmos DB 支持的數據庫操作所需的系統資源,例如 CPU、IOPS 和內存。
SLA 服務級別協議
SLA 服務級別協議(Service-Level Agreement)SLA是關於網絡服務供應商和客戶間的一份合同,其中定義了服務類型、服務質量和客戶付款等術語。((i) 詳細的事件說明;(ii) 與停機時間和停機持續時間有關的信息;(iii) 受影響用戶(如有)的數量和位置;以及 (iv) 您在事件發生時試圖解決該事件的說明
自動索引
在 Azure Cosmos DB 中,每個容器都有一個確定了如何為容器項編制索引的索引策略。 新建容器的默認索引策略會對每個項的每個屬性編制索引,對任何字符串或數字強制使用范圍索引,對 Point 類型的任何 GeoJSON 對象強制使用空間索引。 這樣,無需提前考慮索引和索引管理,就能獲得較高的查詢性能。
默認情況下不會定義組合索引,空間索引(允許你修改索引策略)
Azure Cosmos 的幾個基本特點
1. 無限彈性寫入和讀取可伸縮性。Cosmos DB 可為讀寫操作提供 99.999% 的高可用性,適用於需要彈性擴展 流量暴增的服務
2. Cosmos DB 可保證全球任意位置第 99 個百分位的讀取(已編入索引)和寫入延遲均低於 10 毫秒(低延遲)
3. 提供五個妥善定義的一致性選項
4 .保證提供綜合服務級別協議 (SLA) ,當服務區域出現意外故障,停機,或者沒有達到約定性能,可以通過申請,向微軟索要賠款
分布式一鍵式部署多區域分布
顧名思義,便是操作非常簡單通過點擊就能完成對多區域的部署、復制集備份。使用 Azure Cosmos DB 的多宿主 API,應用程序始終知道最靠近的區域並將請求發送到該區域。 無需進行任何配置更改就能識別最靠近的區域
你只要選擇你需要部署的區域 然后點擊部署即可完成。
在中國Azure Cosmos DB 支持四塊區域的分布式部署,分別是 南部1 南部2 北部1 北部2 (實際區域為北京和上海)
簡單而言,如果應用程序需要保證在中國任何位置都能提供快速響應、始終聯機並需要無限且可彈性縮放的吞吐量和存儲,則應在 Azure Cosmos DB 上生成應用程序
支持五種數據模型
一致性,可用性,性能權衡
依賴於復制實現高可用性和/或低延遲的分布式數據庫在讀取一致性與可用性、延遲和吞吐量之間進行基本權衡。
大多數商用分布式數據庫都要求開發人員在兩種極端一致性模型之間進行選擇:非常一致和最終一致,最終一致性可提供更高的可用性和性能,但會加大應用程序的編程難度。精確定義的多個一致性選項。
在 Cosmos DB 中構建多區域分布式應用程序時,不再需要在一致性、可用性、延遲和吞吐量之間進行極端的權衡。 Cosmos DB 的多主數據庫復制協議經過精心設計,提供五個妥善定義的一致性選項 - 非常一致性、有限過期一致性、會話一致性、一致前綴一致性和最終一致性 - 可為多區域分布式應用程序提供直觀的編程模型以及低延遲和高可用性。
按最強到最弱的順序,模型分別為:
1. 強
強一致性提供可線性化保證。 可線性化是指並發處理請求。 保證讀取操作返回項的最新提交版本。 客戶端永遠不會看到未提交或不完整的寫入。 始終保證用戶讀取最新確認的寫入
2. 有效過期
保證讀取遵循一致前綴保證。 讀取操作可能滯后於寫入,最多 "K" 個版本(即 "更新")或 "T" 時間間隔。
3. 會話
保證在單個客戶端會話中進行讀取,以保證一致前綴、單調讀取、單調寫入、讀寫和讀寫操作保證。 這假設單個 "writer" 會話或共享多個編寫器的會話令牌。
4. 一致前綴
返回的更新包含所有更新的前綴,無間隔。 一致前綴一致性級別保證讀取永遠不會看到無序寫入。
5. 最終
不會對讀取進行排序。 如果缺少任何進一步的寫入,則副本最終會收斂。最終一致性是最弱的一致性形式,因為客戶端可以讀取早於其讀取的值。 最終一致性非常適合於應用程序不需要任何順序保證。
Azure Cosmos DB的使用場景
1.多區域數據分布和使用
2.建立實時的客戶體驗
3.游戲和電子商務的最佳數據庫服務(大規模和高性能需求,即使,彈性縮放處理流量突發,跨全球多數據中心)
匯總圖