分布式锁的背景,基于数据库、redis、zookeeper实现分布式锁的原理与优缺点你都知道吗?
为什么要分布式锁、分布式锁的实现方式有哪几种、这几种分布式锁实现方式的优缺点有哪些?阅读完本文后你你应该掌握:
- 基于数据库实现分布式锁具体步骤是什么,优缺点是什么;
- 基于Redis实现分布式锁具体步骤是什么,优缺点是什么;
- 基于Zookeeper实现分布式锁具体步骤是什么,优缺点是什么;
分布式锁诞生的背景
我们在开发单机应用的时候,如果需要对某一个共享变量进行多线程同步访问的时候,可以使用我们学到的Java多线程的18般武艺进行处理,并且可以完美的运行,毫无Bug!
我们现在的应用程序如果只部署一台服务器,那并发量是很差的,如果同时有上万的请求那么很有可能造成服务器压力过大,而瘫痪。
想想双十一 和 三十晚上十点分支付宝红包等业务场景,自然需要用到多台服务器去同时处理这些业务,那么这些服务可能会有上百台同时处理,
但是请我们大家想一想,如果有100台服务器 要处理分红包的业务,现在假设有1亿的红包,1千万个人分,金额随机,那么这个业务场景下是不是必须确保这1千万个人最后分的红包金额总和等于1亿。
如果处理不好每人分到100万,那马云爸爸估计大年初一,就得宣布破产了
分布式锁应该具备的条件
在分析分布式锁的三种实现方式之前