分布式系统协同服务
工作原理:核心是原子广播,这个机制保证了各个Server之间的同步,实现这个原理的协议叫做Zab协议。
简介Zab协议:有两种模式,它们分别是恢复模式(选主)和广播模式(同步)。当服务启动或者在领导者崩溃后,Zab就进入了恢复模式,当领导者被选举出来,且大多数Server完成了和 leader的状态同步以后,恢复模式就结束了。状态同步保证了leader和Server具有相同的系统状态。 为了保证事务的顺序一致性,zookeeper采用了递增的事务id号(zxid)来标识事务
角色:
领导者(Leader):发起投票和决议,更新系统状态
学习者(Learner):1、跟随者 (Follwer):参与投票。2、观察者(Observer):不参与投票、提高系统速度(解释:因为高并发的时候服务器比较多,有一个服务反应比较慢,导致投票都慢,为了不影响整体性能, Server增多,投票阶段延迟增大,影响性能。)
客户端(Client):客户端
选主算法:Leader选举算法采用paxos协议(分布式选举算法)。Paxos核心思想是:1、超过半数就认为成功(比如5个服务,3个就可以了),所以Server一般是奇数。
paxos协议分两种:basic paxos和fast paxos两种,fast paxos是默认的。
写数据流程:客户端-server1-通知Leader-通知其他服务-其他服务写-写完通知Leader-告诉server1-告诉客户端。
Zookeeper有哪几种节点类型
持久:创建之后一直存在,除非有删除操作,创建节点的客户端会话失效也不影响此节点。
持久顺序:跟持久一样,就是父节点在创建下一级子节点的时候,记录每个子节点创建的先后顺序,会给每个子节点名加上一个数字后缀。
临时:创建客户端会话失效(注意是会话失效,不是连接断了),节点也就没了。不能建子节点。
临时顺序:不用解释了吧。
要求:改一处全生效,具备一个很好的容灾机制,稳定可靠
1.2 设计目的
1.最终一致性:client不论连接到哪个Server,展示给它都是同一个视图,这是zookeeper最重要的性能。
2 .可靠性:具有简单、健壮、良好的性能,如果消息m被到一台服务器接受,那么它将被所有的服务器接受。
3 .实时性:Zookeeper保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息。但由于网络延时等原因,Zookeeper不能保证两个客户端能同时得到刚更新的数据,如果需要最新数据,应该在读数据之前调用sync()接口。
4 .等待无关(wait-free):慢的或者失效的client不得干预快速的client的请求,使得每个client都能有效的等待。
5.原子性:更新只能成功或者失败,没有中间状态。
6.顺序性:包括全局有序和偏序两种:全局有序是指如果在一台服务器上消息a在消息b前发布,则在所有Server上消息a都将在消息b前被发布;偏序是指如果一个消息b在消息a后被同一个发送者发布,a必将排在b前面。
选举机制:

Zookeeper是一个分布式系统协同服务,其工作原理基于原子广播和Zab协议,确保集群中服务器的状态同步。服务角色包括领导者、跟随者和观察者。选主算法采用Paxos协议,确保超过半数的服务器同意即可生效。Zookeeper提供不同类型的节点如持久、持久顺序、临时和临时顺序,以满足不同的数据需求。其设计目标包括最终一致性、可靠性、实时性等,并具备强大的选举机制。
1241

被折叠的 条评论
为什么被折叠?



