最近被問到Azure上的MongoDB在哪裏?html
答:Azure上目前沒有Paas層的Mongo DB可用,但仍有兩種方式使用Mongo DB, 1是使用Iaas層的虛擬機構建MongoDB集羣,2.是使用更強大的Paas層的Cosmos DB。數據庫
Azure Cosmos DB是多區域 分佈式 多模型數據庫服務。微信
您能夠觀看如下視頻內容瞭解Azure Cosmos DB或者跳過視頻閱讀文章:分佈式
https://v.qq.com/x/page/r3050khlbou.htmlide
多區域:性能
能夠一鍵將數據複製到與 Cosmos 賬戶相關聯的全部區域。對於國際版本Azure,Cosmos DB目前已經支持超過30個區域(注:Azure全球已經有55個區域):3d
對於中國版Azure,4個區域所有支持:視頻
多模型:htm
目前支持Key-Value,Column-family, Document, Graph4種模型;blog
多種API:
目前支持了SQL,MongoDB,Cassandra, Table, Gremlin等多種API(還在持續增長種)。
SLA保證的低時延:
使用 Cosmos DB 能夠生成具備高響應能力的多區域規模應用程序。CosmosDB 可保證全中國任意位置99%的狀況下讀取(已編入索引)和寫入延遲均低於10毫秒。 此功能使高響應度應用能夠實現持續的數據引入和超快的查詢。
利用Cosmos DB 的多區域 分佈式特色的典型應用:
在多個區域部署WEB站點;
用戶經過Traffic Manager訪問到最靠近用戶的區域的站點;
建立Cosmos DB,並一鍵複製到全球多個區域;
各個區域的WEB站點訪問本區域或最靠近本區域的Cosmos DB;
(注)Traffic Manager請參見:
《Azure Traffic Manager- 能夠在全球 Azure 區域內以最佳方式分發流量》
五個一致性:
具體請參考官網:
https://docs.azure.cn/zh-cn/cosmos-db/consistency-levels
很是一致性(Strong)
有限過時一致性(Bounded Staleness)
會話一致性(Session)
前綴一致性(Consistent Prefix)
最終一致性(Eventual)
分區:
AzureCosmos DB 使用分區縮放數據庫中的單個容器,以知足應用程序的性能需求。 在分區中,可將容器中的項分割成不一樣的子集(稱做「邏輯分區」)。 邏輯分區是根據與容器中每一個項關聯的分區鍵值造成的。 邏輯分區中的全部項具備相同的分區鍵值。
例如,某個容器保存項。 每一個項具備惟一的 UserID 屬性值。 若是 UserID 充當容器中的項的分區鍵,而且有1,000 個惟一的 UserID 值,則會爲容器建立1,000 個邏輯分區。
除了用於肯定項的邏輯分區的分區鍵之外,容器中的每一個項還有一個項ID(在邏輯分區中保持惟一)。 將分區鍵與項 ID相結合能夠建立項的索引用於惟一標識該項。
吞吐量:
AzureCosmos DB 對數據庫的全部操做(增刪改等)的成本進行規範化,抽象了支持的數據庫操做所需的系統資源,例如CPU、IOPS 和內存,並最終以「請求單位」(縮寫爲RU)表示。可將每秒 RU 數(RU/S)視爲吞吐量的計量單位。
讀取 1 KB 項的成本爲 1 個請求單位(1 個 RU)。 以相似方式爲其餘全部數據庫操做分配 RU 成本。 無論使用哪一個API來與AzureCosmos 容器和數據庫操做交互,都始終以RU來計量成本。 不管數據庫操做是寫入、讀取仍是查詢,都始終以RU來計量成本。
計費方式:
預配的吞吐量+每小時消耗的存儲的費用
預配的吞吐量能夠給 數據庫(database)和 容器Container(collection, graph, or table) 單獨預配吞吐量(throughput )。
吞吐量能夠預配到容器或數據庫上,可是每一個容器或數據庫的最小預配量爲:400RU/S。
所以,使用Cosmos DB的最低成本爲 4*37.94,約等於152元/月。
除此,還須要增長存儲的費用:
若是將數據擴展至多個區域,則需支付多個區域的總存儲成本。