走进cassandra之四:副本机制

如果你要想最大限度保持一个东西不会忘记掉,你最好的办法,不是死记,记好几十遍。
而是要告诉几个人,这样就算你忘记了,别人还记得。
在cassandra里面呢,这个原理可以描述为
Replication is the process of storing copies of data on multiple nodes toensure reliability and fault tolerance.
当然,你也不能为了安全,要告诉100个人,这样累也累死了。

这个东东,最好是不多不少,刚刚合适。
在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.

就是代表,有多少个数据的副本。

确定了有多少副本了,还有一个问题,这些副本怎么分布呢?
让哪些节点,持有你这些副本呢?

这也有对应的算法,

• SimpleStrategy
• NetworkTopologyStrategy

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.

这句的意思就是:第一个数据副本放在 环里的一个节点上(这个节点由上节说到的分区器确定),其他的数据副本,按照顺时针方向,依次放在写一个节点。(不考虑机架或者数据中心的位置)。

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.

主要意思就是说,北京人访问北京的数据中心就好了,不要跑去访问上海的数据中心,那样跑的路就太远了。
另外,在同一个数据中心,完全有可能所有节点都死掉。
比如说,大厦整体断电了,所有机器同时见马克思了。
所以数据要分散在不同数据中心。

 

你可能感兴趣的:(走进cassandra之四:副本机制)