天天看點

Cassandra 的分區和複制

分區

分區器實際上就是基于分區鍵字段的哈希函數,由此生成名為令牌的值。可能的令牌值的集合組成一個環,​

​Cassandra ​

​會把可能的令牌值配置設定到叢集裡的不同節點上。分區器生成的令牌值是用來辨別存儲相應資料的主節點的

預設的分區器是 ​

​Murmur3Partitioner​

​,這是個随機分區器。另外還有有序分區器。有序分區器的目的是為了能把存儲相似主鍵的分區盡可能地配置設定到相同節點上,以此來提升範圍查詢的性能。但在實踐中,這個好處抵不過資料在叢集内分布不均衡的缺點,因為在某些節點上存儲的資料記錄數可能會遠超其它節點。因為這個原因,而分區器又是整個叢集範圍内的設定,是以大多數情況下大家還是會用預設的分區器。

複制

分區器生成的令牌會決定每個相應的分區存儲的主節點,同時我們還要決定要儲存哪些額外的資料副本。這就是存在複制政策的原因。用得最多的政策就是 ​

​SimpleStrategy ​

​​和 ​

​NetworkTopologyStrategy​

​SimpleStrategy ​

​主要用于單個資料中心的部署,使用者提供一個值,名為複制因子,意思是資料需要儲存多少份(多少個副本),剩下的事交給 Cassandra 就好了。

​NetworkTopologyStrategy ​

​主要用于多個資料中心的部署,采用這個政策時,需要為每個資料中心都指定一個複制因子。

與其它Nosql的差別