cassandra的架构——Data distribution and replication(分布式存储和复制)

    本篇来回答上一篇的问题:cassandra选择了CAP中的AP,但没有撇下C,他是如何做到的?或者会出现下面的问答。

Q:原来只有一台服务器的时候,一旦当机,我们就只能等着了。。。现在我们有了分布式集群,妈妈再也不用担心我不能提供服务了吗?

A:当然,我们把数据分散在了不同的机器上,一台机器倒下了,千百个机器(前一台机器的复本)站出来。

Q:①如何均匀的分散数据到集群的不同机器上,以分担负载,避免热点(hot spot)?

       ②如何选择其他的机器作为我的复本机器呢?

       ③其中一台机器当机了,它存储的数据怎么办?我又新加了一台机器,怎么把数据分给它?


cassandra的架构是一个Peer-to-Peer(点对点)分布式模型,与现行的master-slave的主从结构不同处在于:

  • master-slave:master节点负责接收数据,slave节点从master节点处复制数据,会有潜在的单点故障(single point of failure)
  • Peer-to-Peer:所有的节点在结构上都是等同的,所有的节点都可以接收数据,并把数据分发给关联的节点去复制,从而避免了单点故障
    针对这些结构上对等的数据节点和它将要存储的数据,cassandra使用一致性哈希(consistent hashing)来解决上述几个问题(借鉴了Dynamo的设计),在cassandra1.2之前,没有引入virtual Node的结构,单纯的使用一致性哈希ring,1.2之后使用了virtual node的设计,这一点也许也是认可了Dynamo的设计。PS:下面的内容基于对一致性哈希的了解。

数据分布——一致性哈希

<
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值