• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

谫月

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

zookper的乐观锁

当zk出现多线程使用时,需要有乐观锁来保证线程的安全访问。zk的乐观锁是根据版本号实现的。所以在编码时需要根据版本号来更新数据。

@Test
public void testSetData() throws KeeperException, InterruptedException {

//这步时获取zk连接,不做描述
ZooKeeper zooKeeper = getZooKeeper();


Stat stat = new Stat();
byte[] data = zooKeeper.getData(node, false, stat);

//获取zk连接的版本号。
int version = stat.getVersion();

//根据版本号跟新数据。创建时,版本号为0.每次新增会递增,当版本号不符时,更新会失败。
zooKeeper.setData(node, "XXXX".getBytes(), 0);


}

posted on 2022-01-11 15:12  谫月  阅读(119)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3