Zookeeper源码分析:Watcher机制

public Stat setData(String path, byte data[], int version, long zxid, long time) throws KeeperException.NoNodeException { Stat s = new Stat(); //根据path, 获得DataNode对象n DataNode n = nodes.get(path); //如果n为null, 则抛出NoNodeException异常 if (n == null) { thrownew KeeperException.NoNodeException(); } byte lastdata[] = null; synchronized (n) { lastdata = n. data; n. data = data; n. stat.setMtime(time); n. stat.setMzxid(zxid); n. stat.setVersion(version); n.copyStat(s); } // now update if the path is in a quota subtree. String lastPrefix = getMaxPrefixWithQuota(path); if(lastPrefix != null) { this.updateBytes(lastPrefix, (data == null ? 0 : data.length) – (lastdata == null ? 0 : lastdata.length )); } //触发Watcher dataWatches.triggerWatch(path, EventType.NodeDataChanged); return s;}

,我没有值得分享的感伤爱情故事,

Zookeeper源码分析:Watcher机制

相关文章:

你感兴趣的文章:

标签云: