赞
踩
常见的主从架构,即为一主多从,常见的读写策略为写主读从,并由主节点写日志并通过网络传输来维护从节点的数据库状态,但是这个常见的策略会产生一系列的分布式数据一致性问题。
通常我们使用主从架构,主要是处于以下几个目的:
注意与设计模式中的状态机模式进行区分,核心要点在于各自状态的含义是什么?
复制状态机基于集群节点初始状态一致,并且导致状态变更的事件在每个节点中应用的顺序一致,那么集群所有节点的状态最终必然是一致的这个理念,并通过事件日志传输维持集群节点的状态同步;
如上图所示,复制状态机算法下定义的每个节点含有:自身状态机、本地日志;
而如何保证事件日志的应用顺序一致,这个则由具体的分布式一致性算法(共识算法) 实现,如ZAB、Raft通过实现了全序广播算法对此进行保证,这个下面会具体讲。
当我们要研究分布式系统时,首先是要使用形式化的语言描述分布式系统会出现的问题,然后根据这些问题总结出相应的系统模型,最后再基于系统模型提供的前置条件定义算法,并通过算法属性基于系统模型论证算法的有效性。
分布式系统中常见的问题场景为:
共识:集群中半数以上节点就某项提议达成一致;提出共识的主要原因是集群中每个节点是无法仅凭借自身信息做出正确决策的;
如多个客户端同时请求分布式系统尝试获取最后一张电影票,此时可以通过共识算法决定哪个客户端为获胜者;
共识算法用于容忍部分同步,崩溃-恢复分布式系统模型下的节点通信、节点失效等问题;
接着我们首先讲复制状态机的实现手段-日志:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。