写点什么

zookeeper-zookeeper 的应用场景

作者:zarmnosaj
  • 2022 年 7 月 18 日
  • 本文字数:648 字

    阅读完需:约 2 分钟

配置中心

前面有提到过,zookeeper 可以作为分布式应用配置中心,其主要思想为:


  1. 应用连接 zookeeper 服务器

  2. 读取 zookeeper 中的配置信息,并且注册 watcher 监听器,将读取到的配置信息存入本地变量中

  3. 当 zookeeper 中的配置信息发生变化时,通过 watcher 的回调方法捕获数据变化事件,应用接收事件,做对应的响应处理

  4. 应用重新获取配置信息,更新应用

生成分布式唯一 id

不管是在传统的单体应用,或者是单实例 or 多实例的微服务应用中,单表的情况下,通常都是设置字段属性为自增主键,自动为每条记录生成一个唯一的 ID。但是如果进行了分库分表,就无法在依靠数据库的 auto_increment 属性来唯一标识一条记录了。因为在不同表中,主键 id 是有可能会重复的。要应对这种情况,对业务来说,可以对表进行设置业务主键,不利用 id 来进行业务代码的唯一标识,但是也可以利用 zookeeper 来生成分布式唯一 id,其主要的设计思路:


  1. 应用连接 zookeeper 服务器

  2. 创建一个指定目录,用于生成临时有序节点作为子节点

  3. 每次生成 id 时,在指定路径下,生成临时有序的一个节点

  4. 取刚刚生成的有序节点路径,截取序列号作为分布式环境下的唯一 ID

实现分布式锁

zookeeper 实现分布式锁的思路很简答,因为 Zookeeper 本身由集群保证数据一致,并自带 Watch 机制、客户端过期失效检测等机制,所以也非常适合实现分布式锁。


Zookeeper 实现分布式锁的方式很简单,客户端通过创建临时节点来锁定分布式锁,如果创建成功,则加锁成功,否则,说明该锁已经被其他客户端锁定,这时当前客户端监听该临时节点变化,如果该临时节点被删除,则可以再次尝试锁定该分布式锁。

发布于: 刚刚阅读数: 3
用户头像

zarmnosaj

关注

靡不有初,鲜克有终 2020.02.06 加入

成都后端混子

评论

发布
暂无评论
zookeeper-zookeeper的应用场景_7月月更_zarmnosaj_InfoQ写作社区