在哪个网站可以做图文合并/北京网站seo哪家公司好
1.在Zookeeper中,每一个数据节点都称为一个ZNode,所有的ZNode按层次化结构进行组织,形成一棵树。
2.Zookeeper中的事务:指能够改变服务器状态的操作,比如节点的创建、删除等。每一个事务请求都会有
一个全局唯一的事务ID。
3.节点特性:
节点类型(节点的生命周期):持久节点、临时节点、顺序节点。
状态信息:包含事务ID、创建时间、版本号等信息。
版本:记录节点的修改次数,用来保证分布式数据的原子性操作(悲观锁:一个事务对数据进行处理时,在整个过程
都将数据锁定,其它事务无法对这个数据进行更新,直到这个事务完成;乐观锁:假定多个事务在处理过程中不会彼此影响,所以
在大部分时间不需要加锁)
4.Watcher:客户端向服务端注册一个Watcher,当服务端指定事件触发时,就会向指定的客户端发送一个事件通知。
Watcher接口、WatchedEvent、回调方法等等。
5.ACL:“schema:id:permission”
schema权限模式:
IP:通过IP地址粒度进行权限控制。
Digest:类似于“username:password”形式。
World:对所有用户开放。
Super:对超级用户开放。
授权对象ID:指权限赋予的用户或一个指定实体。
权限Permission:CREATE(创建权限)、DELETE(删除权限)、READ(读取权限)、WRITE(更新权限)、ADMIN(管理权限)。
6.序列化:使用Jute实现序列化和反序列化。
7.通信协议:Zookeeper基于TCP/IP协议,实现了自己的通信协议来完成客户端与服务器、服务器与服务器之间的网络通信。
对于请求主要包括请求头和请求体,对于响应,主要包含响应头和响应体。
8.解析服务器地址:将多个服务器地址打散后,装入一个循环队列中,然后再遍历选取。
9.ClientCnxn网络IO:负责维护客户端与服务端之间的网络连接并进行一系列的网络通信。
10.会话:在Zookeeper客户端和服务端成功完成连接创建后,就建立了一个会话,在运行期间会在不同的回话状态
之间进行切换。会话状态有CONNECTING、CONNECTED、CLOSE等等。
会经历会话创建,会话检查,会话删除等。
11.Leader选举:
服务器启动时期的选举:(1)每个Server发出一个投票(以(myid,ZXID)表示,myid表示要投的服务器,初始时都会投给自己);
(2)接收来自各服务器的投票(判断投票的有效性);(3)处理投票(将别人的投票和自己的投票PK,先比较ZXID,若相同再比较myid,
比较大的作为Leader);(4)统计投票(每次投票后,统计是否有过半的机器接收到相同的投票信息);(5)改变服务器状态
(选出Leader后,就更改状态,FOLLOWING、LEADING)
服务器运行期间的选举:在运行时候,当Leader所在的机器挂掉时,就会进行新一轮的Leader选举,先把其余服务器状体变为LOOKING
其余选举过程和启动时选举一致。
服务器状态:LOOKING(寻找Leader状态)、FOLLOWING(跟随者状态)、LEADING(领导者状态)、OBSERVING(观察者状态)。
12.服务器中的角色:
Leader:事务请求的唯一调度和处理者,保证集群事务处理的顺序性;集群内部各服务器的调度者。
Follower:处理客户端非事务请求,转发事务请求给Leader服务器;参数事务请求Proposal投票;参与Leader选举投票。
Observer:和Follower基本是一致的,只是不参与任何形式的投票。
13.集群间消息通信:
分为数据同步型、服务器初始化型、请求处理型和会话管理型。
14.Proposal流程:每一个事务请求都需要集群中过半机器投票认可才能被应用到Zookeeper的内存数据库中去。
包括(1)发起事务投票;(2)生成提议Proposal;(3)广播提议;(4)收集投票;(5)将请求放入toBeApplied队列;(6)广播COMMIT消息
15.数据与存储:分为内存数据存储和磁盘数据存储。
内存数据:DataTree(是一颗树结构,代表一份完整的数据),DataNode(数据存储的最小单元),
ZKDatabase是Zookeeper的内存数据库,负责管理Zookeeper的所有会话、DataTree存储和事务日志。
数据快照:用来记录Zookeeper服务器上某一个时刻的全量内存数据内容,并将其写入到指定的磁盘文件中。
数据同步:将没有在Leader服务器上提交过的事务请求同步给Leader服务器。