更新 Zookeeper 中某个节点的 TTL

Renew TTL of a node in Zookeeper

我在 Zookeeper 上保留了一些配置,如果没有更新,一段时间后会过期。

通过使用 TTL,我可以做到这一点,但我如何更新 TTL?删除和添加节点是一个选项,但会产生不一致的状态。

setData(same data) or Op.check 更新节点的TTL?

提前致谢!

setData会更新节点的TTL。
其实不是更新ttl,而是更新节点的mtime。在Zookeeper中,检查节点是否应该过期的方法是比较getElapsed的return和配置的TTLsetData 将更新 mtime。

protected long getElapsed(DataNode node) {
    return Time.currentWallTime() - node.stat.getMtime();
}