卡桑德拉中的冗余(复制)

  

<强>,什么是复制?

  

在卡桑德拉中,复制是存储数据的到多个节点来保证可靠性和出错容忍性。当你创建一个用于时候(相当于关系数据库中的表)的时候,就必须给出一个副本放置策略(副本放置策略)

  

,

  

<强>什么是副本因子(复制因子)?

  

这个数决定了有几份副本,比如如果设置为1,则表示每一行只有一个副本,以此类推。所有的副本地位都是相等的,没有主从之分。注意,。

  

,

  

<强>什么是副本放置策略(副本放置策略)?

  

这个策略决定了一个用于的副本如何放置在集群中(当创建用于时候就指定了)

  

。简单策略(SimpleStrategy):

  

当使用卡桑德拉CLI命令行工具创建用于时的默认副本放置策略。假定根据瓜分者得到第一个节点设为N1,它的顺时针的节点为N2, N3…则这种策略会把用于的第一个副本放置在N1上,然后其他副本依次放置在N2, N3 . .上

  

翱ㄉ5吕械娜哂?复制)"

  

,

  

b。网络拓扑策略(NetworkTopologyStrategy):

  

这种策略用于当你知道节点如何在数据中心(数据中心)分组的情况或者你希望部署集群横跨多个数据中心,此时你必须指定每个数据中心要多少个副本,(一般推荐设为2或3者)。在这种情况下,副本放置策略由数据中心自己决定。具体为,先由瓜分者决定第一个节点设为N1,在架子(rack1)上,属于数据中心DC1,则第一个副本放在N1,其他副本也必须分别放在DC1中,优先选择不是rack1的架子,如果没有其他架,则只能放在rack1上。

  

翱ㄉ5吕械娜哂?复制)"

  

比如如图所示,现在有两个数据中心,蓝色表示DC1,绿色表示,DC2 DC1上有2个架子,分别是Rack1和Rack2。则如果瓜分者选择的第一个节点是DC1的节点N3的话,那么副本R1就放在DC1的节点N3上,而这个副本的下一个副本R2就放在同一个,也就是DC1的下一个架子上(如果有),它刚好发现,顺时针的下一个节点陶瓷刚好也是DC1,但是是另外一个架子(Rack2),所以副本R2放在陶瓷上。对于属于DC2的2个副本也遵循同样的策略。

卡桑德拉中的冗余(复制)