高可用性(HA)与Replication机制

来源:互联网 发布:迪卡侬淘宝旗舰店 编辑:程序博客网 时间:2024/05/23 18:31
最近在学习neo4j 的时候,看到个‘高可用性’的概念。就认真的学习下。
 
 
在分布式存储系统中为了保证数据的可用性可采用master-slave Replication机制(其中master只提供写服务,slave只提供读服务),一般有三种方式:
 
1.异步
  master有一个线程不断的扫描操作日志将最新的日志发送给slave,slave有线程接受master发送来的更新操作并回放。接受和回放操作一般由两个不同的线程。如果slave宕机则重新向master申请。 
 
2.强同步
  每个更新操作都先写入slave然后才写入master才能成功返回。传统的强同步会遇到一个问题,即如有一个slave宕机则必须停止写服务,所以该方法只能满足数据可靠性,不能满足可用性。
  改进方法为,在master中维护一张slave机器表,每个写操作都要同步到slave列表中的所有机器。如发现一台slave宕机则将该slave从这个列表中删除。
 
3.半同步
  设有N台slave,只要数据写入其中的任意K(1=<K<=N)台slave并写入master中就可以成功返回,因为K>1,所以总有至少一个跟master保持数据同步。当master宕机时,可以采用分布式选举算法paxos再slave中选取跟master数据同步的slave充当master继续提写服务。(Berkerly DB实现了这种同步方式)
 
 
原创粉丝点击