前言: Zookeeper中的节点主要分为临时节点和持久节点。 持久节点在创建之后,除非主动发起删除,否则节点会一直存在; 而临时节点则不同,创建该节点的Session过期后,则该Session创建的所有临时节点都会被删除。 本文主要来从源码的角度来分析下临时节点删除的全过程。 1.SessionTrackImpl的心跳检测 既然当Session过期后,Zookeeper会删除该Session创建的所有临时节点,那么我们就可以从Session的管理器SessionTrackImpl入手。 1.1 SessionTrackImpl.run() public class SessionTrackerImpl extends ZooKeeperCriticalThread implements SessionTracker { synchronized public void run() { try { while (running) { currentTime = Time.currentElapsedTime(); if (nextExpirationTime >...