nbsp; 主节点宕掉,则选择新节点;
主节点常以操作日志的形式同步备节点。
分两种角色:提议者(Prpposer)、接受者(Acceptor);
执行步骤:
- 批准:Proposer发送accept消息给Accepter要求接受某个提议者;
- 确认:超一半的Accepter接受,则提议值生效,Proposer发送acknowledge消息通知所有的Accepter提议生效。
与2PC比较::
2PC协议保证多个数据分片上操作的原子性;
Paxos协议保证一个数据分片多个副本之间的数据一致性;
Paxos协议用法:
实现全局的锁服务或者命名和配置服务;
---Apache Zookeeper
将用户数据复制到多个数据中心;
---Google Megastore
数据存储层冗余:
多个副本,实现访问的高可用性。
如何实现:
数据复制:
基于日志;
Master-Slave:mysql\MongoDB
Replic Set:MongoDB
双写:
存储层多主对等结构;比较灵活,但数据模块层成本较高;
数据备份:
冷备份:
定期将数据复制到某个存储介质,是传统的数据保护手段;
优点:简单、廉价,技术难度低;
缺点:定期存在数据不一致;恢复数据时间长;
热备份:
online备份;提供更好的高可用性;
异步热备份:
从主存储写入即返回给应用端,由存储系统异步写入其他副本;
同步热备份:
多份数据副本写入同步完成,无主从之分;
为提高性能,应用程序并发写入;
响应延迟是最慢的那台服务器;
数据存储层失效转移机制:
失效确认:是否宕机、心跳;
访问转移:访问路由到非宕机机器;存储数据完全一致;
数据恢复:主从、日志;