zookeeper
zookeeper:分布式应用协调服务
核心
文件系统:树形结构
树的样子
节点类型
持久化
持久化顺序编号:zookeeper会对该类型节点进行顺序编号
临时:客户端与zookeeper断开连接后删除的节点
临时顺序编号
通知机制(watch)
一次性
实现的功能
命名服务
利用zk创建全局唯一路径,这个路径可以作为一个唯一名字
配置管理
将配置文件存入zk,当发生变化时,客户端通过watch机制更新
集群管理
主要做两件事情:节点的加入、推出和选择master
分布式锁
因为zk的文件系统的每个节点都是全局唯一的,所以可以把节点当初锁, 多个线程同时创建一个节点,成功的相当于抢到锁
获取锁的流程图
队列(两种队列)
1、队列满了之后才可用
在指定节点目录下创建子节点,watch子节点数据是否达到要求(队列满)
2、fifo队列
姿势点
读写任意节点:随着机器的越多,读越牛逼,写越慢
恢复模式:选主流程
1、线程A发起投票
2、集群所有节点接受到A的发起, 选出自己认为的主回复给A
3、A收集结果判断得票最高的C的票数是否过半
4、如果过半则C为主
5、如果没过半,则C替代A继续发起投票重复上面流程
广播模式:节点间数据同步流程
1、所有client连接到master并且发送自己zxid
2、master根据最大的zxid确定同步点
3、同步client,client修改自身状态
同性交友网站github