技术

zookeeper源码学习-CreateMode

负责ZK节点的创建

/**
     * 持久节点
     */
    PERSISTENT(0, false, false, false, false),
    /**
     * 有序持久节点,名称后缀会自增
     */
    PERSISTENT_SEQUENTIAL(2, false, true, false, false),
    /**
     * 临时节点,节点断开连接之后,会被删除
     */
    EPHEMERAL(1, true, false, false, false),
    /**
     * 临时有序节点。
     */
    EPHEMERAL_SEQUENTIAL(3, true, true, false, false),
    /**
		*	该节点类型主要是用作特殊用途,例如leader,或者lock。当节点的最后一个children被删除之后
		* 该节点在未来就会被删除掉。当在该节点内部创建children的时候,应该准备捕获NoNodeException,
		* 因为parent节点可能已经被删除掉了  
     */
    CONTAINER(4, false, false, true, false),
    /*
     * 如果某个节点没有了children,在经过了指定的时间之后还没有被修改,就会被删除掉
     */
    PERSISTENT_WITH_TTL(5, false, false, false, true),
    /**
     * 同上,只不过是有序的
     */
    PERSISTENT_SEQUENTIAL_WITH_TTL(6, false, true, false, true);

CreateMode

CreateMode(int flag, boolean ephemeral, boolean sequential, boolean isContainer, boolean isTTL) {
        this.flag = flag;                //标志位
        this.ephemeral = ephemeral;      //是否临时节点
        this.sequential = sequential;    //是否有序节点
        this.isContainer = isContainer;  //是否容器
        this.isTTL = isTTL;              //是否有超时时间
    }