我在Zookeeper上保留了一些配置,如果没有更新,它会在一段时间后过期。
通过使用TTL,我可以实现这一点,但如何更新TTL?删除和添加节点是一个选项,但会产生不一致的状态。
setData(相同数据)或Op.check会更新节点的TTL吗?
提前致谢!
答案 0 :(得分:0)
setData
将续订节点的TTL。
实际上,不是更新ttl,而是更新节点的mtime。在Zookeeper中,检查节点是否应该过期的方法是比较getElapsed
和已配置TTL
的返回值。 setData
将更新mtime。
protected long getElapsed(DataNode node) {
return Time.currentWallTime() - node.stat.getMtime();
}