技术领域,我觉得了解来龙去脉,了解本质原理,比用什么工具实现更重要:
(1)进程多线程如何互斥?
(2)一个手机上两个APP访问一个文件如何互斥?
(3)分布式环境下多个服务访问一个资源如何互斥?
归根结底,是利用一个互斥方能够访问的公共资源来实现分布式锁,具体这个公共资源是redis来setnx,还是zookeeper,相反没有这么重要。
言归正传,今天把昨天文章的缘起讲一讲,并通过Google Chubby的论文阅读笔记聊一聊分布式锁。
一、需求缘起
58到家APP新上线了导入通讯录好友功能,测试的同学发现,连续点击导入会导入重复数据:
客户端同一个用户同时发出了多个请求,分布式环境下,多台机器上部署的多个service进行了并发操作,故插入了冗余数据。
解决思路:同一个用户同时只能有一个导入请求,需要做互斥,最简易的方案,使用setnx快速解
继续阅读与本文标签相同的文章
上一篇 :
一分钟实现分布式锁
下一篇 :
啥,又要为表增加一列属性?
-
数据库秒级平滑扩容架构方案
2026-05-20栏目: 教程
-
究竟啥才是互联网架构“高并发”
2026-05-20栏目: 教程
-
连接池原来这么简单(一分钟系列)
2026-05-20栏目: 教程
-
一分钟了解微服务的好处和陷阱
2026-05-20栏目: 教程
-
一分钟掌握数据库垂直拆分
2026-05-20栏目: 教程
