【zookeeper分布式锁】

文章目录

  • 1.Zookeeper 分布式锁实战

1.Zookeeper 分布式锁实战

1.1 什么是分布式锁

在单体的应用开发场景中涉及并发同步的时候,大家往往采用Synchronized(同步)或者其他同一个

JVM内Lock机制来解决多线程间的同步问题。在分布式集群工作的开发场景中,就需要一种更加高级

的锁机制来处理跨机器的进程之间的数据同步问题,这种跨机器的锁就是分布式锁。

目前分布式锁,比较成熟、主流的方案:

(1)基于数据库的分布式锁。这种方案使用数据库的事务和锁机制来实现分布式锁。虽然在某些场景

下可以实现简单的分布式锁,但由于数据库操作的性能相对较低,并且可能面临锁表的风险,所以一

般不是首选方案。

(2)基于Redis的分布式锁。Redis分布式锁是一种常见且成熟的方案,适用于高并发、性能要求高且

可靠性问题可以通过其他方案弥补的场景。Redis提供了高效的内存存储和原子操作,可以快速获取和

释放锁。它在大规模的分布式系统中得到广泛应用。

(3)基于ZooKeeper的分布式锁。这种方案适用于对高可靠性和一致性要求较高,而并发量不是太高

的场景。由于ZooKeeper的选举机制和强一致性保证,它可以处理更复杂的分布式锁场景,但相对于

Redis而言,性能可能较低。

1.2 基于数据库设计思路

可以利用数据库的唯一索引来实现,唯一索引天然具有排他性

1.3 基于Zookeeper设计思路一

使用临时 znode 来表示获取锁的请求,创建 znode成功的用户拿到锁。

1.4 基于Zookeeper设计思路二

使用临时有序znode来表示获取锁的请求,创建最小后缀数字 znode 的用户成功拿到锁。

1.5 Curator 可重入分布式锁工作流程

https://www.processon.com/view/link/5cadacd1e4b0375afbef4320

1.6 总结

优点:ZooKeeper分布式锁(如InterProcessMutex),具备高可用、可重入、阻塞锁特性,可解决

失效死锁问题,使用起来也较为简单。

缺点:因为需要频繁的创建和删除节点,性能上不如Redis。

在高性能、高并发的应用场景下,不建议使用ZooKeeper的分布式锁。而由于ZooKeeper的高可靠

性,因此在并发量不是太高的应用场景中,还是推荐使用ZooKeeper的分布式锁。

相关推荐
java1234_小锋35 分钟前
ZooKeeper集群中服务器之间是怎样通信的?
分布式·zookeeper·云原生
AC赳赳老秦4 小时前
工业互联网赋能智造:DeepSeek解析产线传感器数据驱动质量管控新范式
前端·数据库·人工智能·zookeeper·json·flume·deepseek
java1234_小锋1 天前
Zookeeper分布式锁如何实现?
分布式·zookeeper·云原生
西敏寺的乐章1 天前
ZooKeeper 系统学习总结
分布式·学习·zookeeper
yumgpkpm2 天前
Cloudera CDP 7.3(国产CMP 鲲鹏版)平台与银行五大平台的技术对接方案
大数据·人工智能·hive·zookeeper·flink·kafka·cloudera
Msshu1232 天前
多协议PD快充诱骗取电芯片XSP26支持快充取电和识别电脑传输数据
zookeeper·hbase·etcd·memcached·memcache
AC赳赳老秦4 天前
财务数据智能解读:DeepSeek分析利润表生成异常波动原因报告
数据库·人工智能·postgresql·zookeeper·测试用例·时序数据库·deepseek
AC赳赳老秦4 天前
企业级人工智能平台选型深度分析:天翼云 DeepSeek 与开源解决方案的部署考量与成本博弈
人工智能·elasticsearch·zookeeper·rabbitmq·github·时序数据库·deepseek
程序员阿鹏5 天前
怎么理解削峰填谷?
java·开发语言·数据结构·spring·zookeeper·rabbitmq·rab