更新Zookeeper中节点的TTL

时间:2018-03-05 11:15:50

标签: apache-zookeeper ttl

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

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

setData(相同数据)或Op.check会更新节点的TTL吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

setData将续订节点的TTL。
实际上,不是更新ttl,而是更新节点的mtime。在Zookeeper中,检查节点是否应该过期的方法是比较getElapsed和已配置TTL的返回值。 setData将更新mtime。

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