Cassandra是一個由Dynamo演化而來借鑑BigTable的分佈式數據庫(嚴格講是提供分佈式存儲服務)。
選擇的理由:1、大數據量Key/Value存儲,2、分佈式存取,不容許應用因爲存儲導致故障,3、替代管理複雜的HBASE等
或者分佈式環境下替代MySQL。(很多案例,可以搜一搜)
運行架構上:Cassandra由平等的N個節點構成,每個節點之間通過“閒話”(Gossip,比如在一次心跳時隨機選擇一個該節點所知道的鄰居發送心跳消息等)協議通信。平等的架構最終形成簡單的管理和配置。
配置和管理:基本上需要很少的配置(最少配置網絡端口、監聽地址、一個鄰居的地址就可以建成一個相當大分佈式存儲),啓動和關閉管理非常簡單。
編程:本來很簡單的接口,但缺乏很多控制,但有Hector作爲上層編程抽象,事情正變得容易。
首先,有很多好文章了,所以請先百度或者谷歌,推薦兩篇:
總體說明: http://hi.baidu.com/lzpsky/blog/item/77b18830155f8b92a8018e75.html
配置運行:http://www.cnblogs.com/gpcuster/archive/2010/03/25/1695490.html
如果有問題,Google/Baidu吧,現在又萬能的鑰匙了:)
對了,Cassandra有一個特性,寫快讀慢,呵呵。推薦一個地兒:
http://database.51cto.com/art/201006/203344.htm
下面是一個編程實例,使用Hector:
Hector提供了連接池、自動切換到其他Cassandra主機等機制(如代碼中連接localhost:9160不行時可能去連接192.168.1.128:9160,但這不能完全保證,可以看看它的打印信息就知道它如何工作的了)
其實Cassandra和Hector的代碼量不是太大,所以從源代碼去分析問題和學習還是不錯的。
拋磚引玉之入門到此:)以上的代碼已經能滿足一般的key/value存儲了,當然Cassandra並不僅僅如此。