爲何選擇Cassandra?cassandra到底有那些使人印象深入的特色呢?不防咱們先來看下cassandra目前的大致概況。sql
cassandra不只吸取了dynamo論文中的如何作分佈式,如何作副本複製,故障容錯等方面成功的經驗,又吸收了google bigtable中的LSM單機引擎層面精華。理論紮實,工程實現靠譜,因此面世以來,不斷受到人們的追捧。數據庫
寬表領域第一,所有數據排名第十,能夠看出廣受用戶承認,流行度頗高。apache
從benchmark能夠看到cassandra性能是搖搖領先的,受用戶承認也是有緣由的,畢竟能打,有實力。後端
瞭解了cassandra概況,表現搶眼,再讓咱們深刻看看,什麼緣由讓咱們選擇cassandra
我大體總結了以下十點:網絡
與下一代雲應用相關的許多挑戰都集中在數據量和數據處理速度上。Cassandra可否有能力應對這種具備多樣性的數據流量?答案是確定的,Cassandra是線性擴展,能夠根據前臺數據流量輕鬆肯定集羣規模,處理能力不夠?加一臺節點試試。架構
Netflix,Hulu,Instagram,eBay,Apple和Spotify都在大規模使用Cassandra,做爲他們產品後端的一部分。facebook的instangram一天用cassandra處理上億圖片,這足夠說明了cassandra能夠自如的處理大量數據集。運維
不像有些分佈式系統,cassandra不依賴外部組件,全部必須的操做都集成在cassandra內部了,由於是p2p對等架構,無主,環上的節點都是對等的,因此實際部署時,只須要一種機型,一個進程,極度簡化部署及後續運維工做,適合大規模部署。分佈式
Cassandra採用了許多容錯機制。因爲C* 是無主的,因此沒有單點故障。能夠作到不停服滾動升級。這是由於Cassandra能夠支持多個節點的臨時失效(取決於羣集大小),對羣集的總體性能影響能夠忽略不計。性能
Cassandra提供多地域容災。Cassandra容許您將數據複製到其餘數據中心,並在多個地域保留多副本。除了做爲強大的災難恢復和業務連續性保障以外,這有助於知足許多監管,離線分析等要求。
圖示:多DC可用於多地容災,或者離線分析用。大數據
已經有許多Cassandra被有效使用的例子。銀行和其餘金融機構正在使用C*存儲大量金融數據。分析公司正在使用Cassandra來存儲網絡分析數據。醫療公司正在使用Cassandra來存儲傳感器數據和其餘時序數據。還有許多公司利用Cassandra存儲物聯網數據。因此說cassandra是被證實過的。
Cassandra簡化了系統管理。因爲Cassandra是一個無主系統,環中的全部節點都是相同的; 一個同質的系統。它具備容錯能力,能夠支持節點臨時失效,同時對性能的影響最小。這意味着節點易於更換,而且也不要求即刻替換宕機節點。
有大量的,不一樣的參數讓你根據自身場景不斷的調優,舉個例子,若是你是一個重寫,讀不多的場景,能夠修改配置參數成重寫系統。參數設置不只僅是集羣級別的,也能夠是dc級別的,甚至客戶端單個請求級別的,好比單次請求設置一致性級別,已達到更低的延時。
圖示:調節一致性級別,達到更低延時目標
Cassandra能夠很容易的跟其餘開源組件作集成。據我所知,cassandra已經成功跟kafka,spark,solr作集成,打通了大數據生態上下游,成爲大數據處理裏面重要的一環
cassandra提供了不少的監控指標,這些監控項這能夠經過Cassandra利用Java MBeans並將它們暴露給不一樣外部監控系統,好比Datastax的監控系統Opscenter,阿里雲的天象監控系統。您可使用這些指標監控cassandra運行情況,再出現異常指標作出相應的決策。
目前apache cassandra有5.4K Star,而且是開源可控,不須要昂貴的licence費用。stackoverflow上有數萬個打了cassandra tag的問題,這些足以說明cassandra足夠活躍。
一個開源軟件要得到真正意義上的成功,就須要有一個圍繞它發展的生態系統。對於像Cassandra這樣的數據庫,就必須有圍繞它的諮詢,監控和故障排查系統,插件,儀表系統和備份系統, 使得您的組織不須要重複開發上述一切能力,能夠基於社區已有的內容。甚至不少雲廠商提供Cassandra託管服務,讓您只關注應用程序的開發。
cassandra功能強大,更像一個真正的數據庫,如下圖總結來結束本文
Cassandra是您理想的數據庫緣由有不少。瞭解您的系統要求,工做負載和將來業務增加狀況將有助於您作出正確的選擇。如你所見,選擇Cassandra是一個十分明智的選擇。
原文連接 本文爲雲棲社區原創內容,未經容許不得轉載。