侵害个人信息的“疤”何时才能彻底愈合?
大数据体系下的大部分集群服务好像都通过ZooKeeper管理的,其实管理的时候主要关注的就是机器的动态上下线跟Leader选举。 .动态上下线: 比如在zookeeper服务器端有一个znode叫 /Configuration,那么集群中每一个机器启动的时候都去这个节点下创建一个EPHEMERAL类型的节点,比如server1 创建 /Configuration/Server1,server2创建**/Configuration /Server1**,然后Server1和Server2都watch /Configuration 这个父节点,那么也就是这个父节点下数据或者子节点变化都会通知到该节点进行watch的客户端。 .Leader选举: 利用ZooKeeper的强一致性,能够保证在分布式高并发情况下节点创建的全局唯一性,即:同时有多个客户端请求创建 /Master 节点,最终一定只有一个客户端请求能够创建成功。利用这个特性,就能很轻易的在分布式环境中进行集群选举了。 就是动态Master选举。这就要用到 EPHEMERAL_SEQUENTIAL类型节点的特性了,这样每个节点会自动被编号。允许所有请求都能够创建成功,但是得有个创建顺序,每次选取序列号最小的那个机器作为Master 。 3 Leader选举 ZooKeeper集群节点个数一定是奇数个,一般3个或者5个就OK。为避免集群群龙无首,一定要选个大哥出来当Leader。这是个高频考点。 3.1 预备知识 3.1.1. 节点四种状态。 LOOKING:寻 找 Leader 状态。当服务器处于该状态时会认为当前集群中没有 Leader,因此需要进入 Leader 选举状态。 FOLLOWING:跟随者状态。处理客户端的非事务请求,转发事务请求给 Leader 服务器,参与事务请求 Proposal(提议) 的投票,参与 Leader 选举投票。 LEADING:领导者状态。事务请求的唯一调度和处理者,保证集群事务处理的顺序性,集群内部个服务器的调度者(管理follower,数据同步)。 OBSERVING:观察者状态。3.0 版本以后引入的一个服务器角色,在不影响集群事务处理能力的基础上提升集群的非事务处理能力,处理客户端的非事务请求,转发事务请求给 Leader 服务器,不参与任何形式的投票。 3.1.2 服务器ID 既Server id,一般在搭建ZK集群时会在myid文件中给每个节点搞个唯一编号,编号越大在Leader选择算法中的权重越大,比如初始化启动时就是根据服务器ID进行比较。
3.1.3 ZXID 总结 总结一下,本文主要讲解了 undo log 版本链是如何形成的,然后讲解了 ReadView 的机制是什么,通过几个例子,配合画图,详细分析了 ReadView 结合 undo log 版本链是如何来实现让当前事务读取到哪一个版本的数据的,这也就是 MVCC 机制的核心实现原理。
但是到目前为止,只是分析了 ReadView 和 undo log 是如何来实现 MVCC 机制,如何控制事务怎么读取数据,还没有结合在具体的事务隔离级别下,MVCC 机制是如何工作的。 (编辑:长春站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |