詳解一套開源分佈式K/V存儲系統--Cassandra

概述

今天主要介紹一個開源分佈式K/V存儲系統--Cassandra,比較少見,或者很多朋友基本都沒聽過。簡單的說:Cassandra就是一套開源分佈式NoSQL數據庫系統。下面一起了解下吧

詳解一套開源分佈式K/V存儲系統--Cassandra


Apache Cassandra

The Apache Cassandra database is the right choice when you need scalability and high availability without compromising performance. Linear scalability and proven fault-tolerance on commodity hardware or cloud infrastructure make it the perfect platform for mission-critical data. Cassandra's support for replicating across multiple datacenters is best-in-class, providing lower latency for your users and the peace of mind of knowing that you can survive regional outages.

Apache Cassandra是一套開源分佈式Key-Value存儲系統。它最初由Facebook開發,用於儲存收件箱等簡單格式數據,集Google BigTable的數據模型與AmazonDynamo的完全分佈式的架構於一身。Facebook於2008將 Cassandra 開源,此後,由於Cassandra良好的擴展性,被Digg、Twitter等知名Web 2.0網站所採納,成為了一種流行的分佈式結構化數據存儲方案。

詳解一套開源分佈式K/V存儲系統--Cassandra


主要特性

  • 分佈式
  • 基於column的結構化
  • 高伸展性

Cassandra的主要特點就是它不是一個數據庫,而是由一堆數據庫節點共同構成的一個分佈式網絡服務,對Cassandra 的一個寫操作,會被複制到其他節點上去,對Cassandra的讀操作,也會被路由到某個節點上面去讀取。對於一個Cassandra群集來說,擴展性能是比較簡單的事情,只管在群集裡面添加節點就可以了。

Cassandra是一個混合型的非關係的數據庫,類似於Google的BigTable。其主要功能比 Dynomite(分佈式的Key-Value存 儲系統)更豐富,但支持度卻不如文檔存儲MongoDB(介於關係數據庫和非關係數據庫之間的開源產品,是非關係數據庫當中功能最豐富,最像關係數據庫 的。支持的數據結構非常鬆散,是類似json的bjson格式,因此可以存儲比較複雜的數據類型。)

Cassandra最初由Facebook開發,後轉變成了開源項目。它是一個網絡社交雲計算方面理想的數據庫。以Amazon專有的完全分佈式的Dynamo為基礎,結合了Google BigTable基於列族(Column Family)的數據模型。P2P去中心化的存儲。很多方面都可以稱之為Dynamo 2.0。


特點

和其他數據庫比較,有幾個突出特點:

詳解一套開源分佈式K/V存儲系統--Cassandra

模式靈活 :使用Cassandra,像文檔存儲,你不必提前解決記錄中的字段。你可以在系統運行時隨意的添加或移除字段。這是一個驚人的效率提升,特別是在大型部 署上。

真正的可擴展性 :Cassandra是純粹意義上的水平擴展。為給集群添加更多容量,可以指向另一臺電腦。你不必重啟任何進程,改變應用查詢,或手動遷移任何數據。

多數據中心識別 :你可以調整你的節點佈局來避免某一個數據中心起火,一個備用的數據中心將至少有每條記錄的完全複製。

一些使Cassandra提高競爭力的其他功能:

範圍查詢 :如果你不喜歡全部的鍵值查詢,則可以設置鍵的範圍來查詢。

列表數據結構 :在混合模式可以將超級列添加到5維。對於每個用戶的索引,這是非常方便的。

分佈式寫操作 :有可以在任何地方任何時間集中讀或寫任何數據。並且不會有任何單點失敗。


如果大家考慮分佈式K/V存儲方案,Cassandra也是一個不錯的考慮~後面會分享更多devops和DBA方面的內容,感興趣的朋友可以關注一下~

詳解一套開源分佈式K/V存儲系統--Cassandra

相關推薦

推薦中...