Azure上找不到MongoDB?不妨試試Azure Cosmos DB

最近被問到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元/月。

 

除此,還須要增長存儲的費用:

 

若是將數據擴展至多個區域,則需支付多個區域的總存儲成本。

好文要頂 關注我 收藏該文  

相關文章
相關標籤/搜索