大数据存储技术期末复习(自用)

一、题型

1. 判断题(20*2)

2. 简答题(3个*10)

3. 设计题(2个*15)

二、往年题目

三、知识点

(1)CAP理论

1、定义

一致性C:所有数据备份在同一时刻的值相同。读写请求是原子、串行的。

可用性A:部分节点故障,但整体仍然能响应读写请求。请求时间是有限、可终止的。

分区容忍性P:在一定通信时限内达成数据一致,否则发生分区,即部分节点无法和其他节点进行通信。分区是无法避免的。

2、分类

CA:关系型/单点数据库、LDAP、RDBMS,分区后子系统保持CA。

CP:传统数据库分布式事务/分布式数据库、分布式锁、MongoDB、HBase、Redis

AP:DNS、Web缓存、NOSQL、Couch DB、Riak、Cassandra、Dynamo DB。分区节点失联导致数据不一致。

3、注意

没有一个软件系统同时满足CAP:这里的C 指的是强一致性。针对分布式系统而言,一定满足P,即存在网络分区(网络延时)。反证法,允许P-则Server丢包-则C不一致-CAP不成立。

弱一致性:最终一致性,DNS,Gossip (Cassandra的通信协议)

强一致性:同步,Paxos,Raft (multi-paxos),ZAB (multi-paxos)

(2)强一致性算法-paxos

1、共识算法

相同的初识状态+ 相同的输入 = 相同的结束状态。如MySQL 的 binlog,paxos。

2、强一致性算法

强一致性算法=共识算法+client行为。强一致性算法强调多数派,读写需要大于N/2个节点,属于并发环境下的顺序问题。

3、强一致性算法-paxos:

角色:

Client:系统外部角色,请求发起者,比如民众

Proposer:接受client请求,向集群提出提案(propose)。并在冲突发生时,起到冲突调节的作用。像议员,替民众提出议案。

Acceptor(Voter):提议投票和接收者,只有在形成法定人数(Quorum,一般即为majority多数派)时,提议才会最终被接受。像国会。

Learner:提议接受者,backup,备份节点,对集群一致性没什么影响。

步骤阶段:

(3)强一致性算法-Raft

1、三个角色

领导者:0/1个,发送心跳消息,处理客户端读写请求,管理日志复制等。

候选人:领导者心跳超时,发起投票请求,当选领导者。

选民:处理日志消息,等待心跳消息,如果领导超时,就推举自己成为候选。

2、任期

递增,逻辑时钟选举投票以及日志复制的重要依据。

3、过程

候选人向选民提出选举自己的请求,超过n/2同意,即可成为领导,进行日志复制等操作,宕机后超时时间最短的选民成为新的候选者,发起新一轮选举,重复以上步骤。

可以看出所有节点启动时都是follower状态;在一段时间内如果没有收到来自leader的心跳,从follower切换到candidate,发起选举;如果收到majority的赞成票(含自己的一票)则切换到leader状态;如果发现其他节点比自己更新,则主动切换到follower。总之,系统中最多只有一个leader,如果在一段时间里发现没有leader,则大家通过选举-投票选出leader。leader会不停的给follower发心跳消息,表明自己的存活状态。如果leader故障,那么follower会转换成candidate,重新选出leader。

4、三个问题:选举,日志复制,安全

日志:Raft 数据的载体,数据存储的最小单位。

日志结构:用户指令、任期、索引

日志复制:复制状态机-共识、日志、状态机。 mysql 的 HA 架构、redis 的集群架构。

日志同步:二阶段提交2PC。提交放到下一次请求,减少请求次数。

日志一致性:根据任期编号和索引值确定要不要复制

选举规则:自荐,少数服从多数,强者优先,每人一票先到先得,禁止造反,终身责任制。

强者优先:候选者任期编号大于自己,候选者日记完整性高于自己,才会投票。

(4)Nginx的负载均衡策略

IP地址哈希:根据IP地址分配,同一个客户端请求转发给同一个服务器,保证session一致性,适合解决跨域问题。

(5)一致性Hash算法

Hash环:整个哈希值空间组织成一个虚拟的圆环,整个空间按顺时针方向组织,0和2^32-1在零点中方向重合,我们把这个由2^32个点组成的圆环称为Hash环

Hash取模:Node A,B,C,D四台机器,利用其 IP 地址进行hash取模。体现了单调性--原有内容映射到原缓冲。将数据key使用相同的Hash函数计算出哈希值,并确定此数据在环上的位置,从此位置沿环顺时针“行走”(步数编号),第一台遇到的服务器就是其应该定位到的服务器!

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值