zk 创建瞬时、顺序节点的原理
2024-10-09 09:47:44
命令:
create -s -e /worker/lock xx
zk 的实现代码在:PrepRequestProcessor.pRequest2Txn 中
//The number of changes to the children of this znode.
int parentCVersion = parentRecord.stat.getCversion();
CreateMode createMode =
CreateMode.fromFlag(createRequest.getFlags());
if (createMode.isSequential()) {
path = path + String.format(Locale.ENGLISH, "%010d", parentCVersion);
}
根据 parenetCVersion 生成 序号,注意不是上图中的 cversion。
上图中的 cversion 是 Stat 中的属性,而这里的 cversion 是 StatPersisted 中的属性,持久化到磁盘中的属性。
public class DataNode implements Record {
// 省略其他代码
/**
* the stat for this node that is persisted to disk.
*/
public StatPersisted stat;
}
最新文章
- c#取得应用程序根目录
- Caffe fine-tuning 微调网络
- Hive(一):架构及知识体系
- (转)浅谈HTML5与css3画饼图!
- Xcode中如何更改Bundle identifier
- ssh远程执行命令并自动退出(已测试通过)
- VS2010 代码自动对齐 快捷键
- JavaScript 之 Cookie
- 原生 drag drop HTML5
- JS面试Q&;A(续2): Rest parameter,Arrow function 等
- 解决 Vim 的 quickfix 插件错误信息乱码问题
- [C#]统计文本文件txt中的行数(快速读取)
- Python 构造一个可接受任意数量参数的函数
- php实现队列
- vs2017常用快捷键
- oracle 手动增加序列值
- Java与C++Socket通讯注意事项
- BI--SAP BI的权限管理
- intellij idea 的常见配置
- HDUOJ----4004The Frog's Games(二分+简单贪心)