为什么分布式项目中需要分布式锁,而普通的web项目从来没有考虑过锁的问题?
为什么分布式项目中需要分布式锁,而普通的web项目从来没有考虑过锁的问题?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
为什么分布式项目中需要分布式锁,而普通的web项目从来没有考虑过锁的问题?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
“普通的 Web 项目从来没有考虑过锁的问题” 这句话就是错的。
普通 Web 项目里你没有多线程?有多线程就一定涉及到线程安全问题,要解决线程安全问题就大概率会用到锁。即使你写的代码里没显式的用到线程锁,你用的数据库不一样带锁?表锁、行锁难道不是锁了?数据库事务里不是锁吗?
而分布式项目,已经是多进程、甚至都不在同一台机器上了,这时线程层面的锁已经不能满足需求了,所以才要分布式锁出马。
举个例子,双十一秒杀,一共 100 个库存。为了防止超卖,你需要怎么办?当然解法不唯一了,可用锁是不是可以解决(不考虑锁开销等问题,只说场景)?这跟你项目是单机单节点还是分布式集群有什么关系?
因为普通的web项目没有达到高并发。