若是你要想最大限度保持一個東西不會忘記掉,你最好的辦法,不是死記,記好幾十遍。
而是要告訴幾我的,這樣就算你忘記了,別人還記得。
在cassandra裏面呢,這個原理能夠描述爲
Replication is the process of storing copies of data on multiple nodes toensure reliability and fault tolerance.
固然,你也不能爲了安全,要告訴100我的,這樣累也累死了。node
這個東東,最好是很少很多,剛剛合適。
在cassandra裏面,這個很少很多的數,有個名詞,叫replication factor(副本因子)
The total number of replicas across the cluster is referred to as thereplication factor.
這個數,表明什麼意思呢?
A replication factor of 2 means two copies of each row, where each
copy is on a different node.ios
就是表明,有多少個數據的副本。算法
肯定了有多少副本了,還有一個問題,這些副本怎麼分佈呢?
讓哪些節點,持有你這些副本呢?安全
這也有對應的算法,ide
• SimpleStrategy
• NetworkTopologyStrategyip
SimpleStrategy 用在只有一個數據中心的狀況下。
SimpleStrategy places the first replica on a node determined by the partitioner. Additional replicas are placed on the
next nodes clockwise in the ring without considering rack or data centerlocation.ci
這句的意思就是:第一個數據副本放在 環裏的一個節點上(這個節點由上節說到的分區器肯定),其餘的數據副本,按照順時針方向,依次放在寫一個節點。(不考慮機架或者數據中心的位置)。it
NetworkTopologyStrategy 這個適用於有多個數據中心的狀況。
This strategy specify how many replicas you want in each data center.
每一個數據中內心要有幾個副本,由這個來定。
在決定這個數字的時候,有2個因素要考慮:
(1) being able to
satisfy reads locally, without incurring cross-datacenter latency, and
(2) failure scenarios.io
主要意思就是說,北京人訪問北京的數據中心就行了,不要跑去訪問上海的數據中心,那樣跑的路就太遠了。
另外,在同一個數據中心,徹底有可能全部節點都死掉。
好比說,大廈總體斷電了,全部機器同時見馬克思了。
因此數據要分散在不一樣數據中心。原理