空心|最全分布式锁设计方案( 五 )
- ZookeeperLockController.java:写一个接口 , 用Curator加锁 , 然后用浏览器进行访问
@RestController@RequestMapping("/zookeeper-lock")public class ZookeeperLockController {@GetMapping("/testLock") public String testLock() {// 获取锁boolean lockResult = ZookeeperUtil.interProcessMutex("testLock");if (lockResult) {try {// 模拟执行业务逻辑TimeUnit.MINUTES.sleep(1L);} catch (InterruptedException e) {e.printStackTrace();}// 释放锁ZookeeperUtil.releaseLock("testLock");return "success";} else {return "fail";} }}打开一个浏览器窗口访问 , 后台打印出获取锁成功的日志 , 在1分钟之内 , 开启另一个窗口再次访问 , 打印出获取锁失败的日志 , 说明分布式锁生效了 。七、实现分布式锁的各方案比较
- 基于数据库实现最简单 , 不需要引入第三方应用 。 但是因为每次加锁和解锁都要进行IO操作 , 性能不是很好 。
- 基于redis实现比较均衡 , 性能很好 , 也不是很难 , 比较可靠 。
- 基于zookeeper实现难度较大 , 因为需要维护一个zookeeper集群 , 如果项目原本没有用到zookeeper , 还是用redis比较好 。
本文分享自微信公众号 - java开发那些事(javawebkf) 。 如有侵权 , 请联系删除 。
推荐阅读
- 一味宠爱|最全盘点卡中国脖子的35项技术,折射中国工业水平的真实现状
- 空心|招聘丨山西千沐云物联科技有限公司
- 德国天然宠粮Real Nature浩瀚母公司Fressnapf(宠爱碗)最全剖析
- 空心|记 Arthas 实现一次 CPU 排查与代码热更新
- 空心|realme 真我X7系列凭什么成为2020年度爆款旗舰?
- 空心|打响芯片突围战!中科院出手,全面去除西方技术
- 半导体|新风口!第三代半导体写入十四五规划,最全概念股盘点!(名单)
- |“空心化”难解决,专家推崇“合村并镇”!老农:2点疑虑先解答
- 空心|#新闻拍一拍#Debian项目曾讨论永久禁止Linus出席
- 数码小王|单机、分布式、集群的区别与联系
