2021-02-07-Zookeeper应用场景介绍系列(二):命名服务-分布式ID

本文介绍了Zookeeper在分布式系统中的命名服务和分布式ID的应用。通过创建不同类型的ZNode(持久节点、持久顺序节点、临时节点、临时顺序节点),特别是利用持久顺序节点和临时顺序节点的特性,可以生成全局唯一且有序的ID。这种方式虽然有效,但由于Zookeeper的选举和同步性能限制,以及引入额外的依赖,实际应用并不广泛。
摘要由CSDN通过智能技术生成

title: Zookeeper应用场景介绍系列(二):命名服务/分布式ID
comments: true
toc: true
categories:

  • 分布式方案
    tags:
  • Zookeeper
  • Zookeeper应用场景
  • 分布式ID
    date: 2021-02-07 21:59:58

​ 命名服务是分步实现系统中较为常见的一类场景,分布式系统中,被命名的实体通常可以是集群中的机器、提供的服务地址或远程对象等,通过命名服务,客户端可以根据指定名字来获取资源的实体、服务地址和提供者的信息。Zookeeper也可帮助应用系统通过资源引用的方式来实现对资源的定位和使用,广义上的命名服务的资源定位都不是真正意义上的实体资源,在分布式环境中,上层应用仅仅需要一个全局唯一的名字。Zookeeper可以实现一套分布式全局唯一ID的分配机制。

​ 也就是说:可以通过Zookeeper来实现分布式ID。

在Zookeeper中的实现

​ zookeeper中的ZNode数据一共有4种:

  • -持久节点

  • -持久顺序节点

  • -临时节点

  • -临时顺序节点

那我们通过利用zookeeper创建顺序节点,则可天然的为我们创建有前缀含义的、自增的、唯一的分布式主键。

命令实现

持久顺序节点

1.先创建父节点

create /my_work

2.创建持久顺序节点4次

create -s /my_work/my_logic_id
create -s /my_work/my_logic_id
create -s /my_work/my_logic_id
create -s /my_work/my_logic_id

3.查看自动生成的id如下:

my_logic_id0000000001
my_logic_id0000000002
my_logic_id0000000003
my_logic_id0000000004

临时顺序节点

临时顺序节点的主要特点是客户端断开连接后会自动删除节点。

1.先创建父节点

create /my_work_s

2.创建持久顺序节点3次

create -e -s /my_work_s/my_logic_s_id
create -e -s /my_work_s/my_logic_s_id
create -e -s /my_work_s/my_logic_s_id

3.查看自动生成的id如下:

my_logic_s_id0000000000
my_logic_s_id0000000001
my_logic_s_id0000000002

小结

​ zookeeper作为一个优秀的分布式应用协调程序,也可以利用它的特性来实现许多额外的功能,但真正这样使用的却比较少,一来是因为zookeeper涉及到选举、同步性能不高,二来是因这样会引入zookeeper依赖,增加系统的复杂性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值