一。分布式中的三个锁
基于 Redis 分布式锁实现“秒杀”(含代码)https://mp.weixin.qq.com/s/JaltkW9z7oAOMFxbec8a4w
https://mp.weixin.qq.com/s/TuAQHj2_VzXFGCvUfvTtiw
史上最通俗分布式锁解读,看完不懂算我输
https://mp.weixin.qq.com/s/NQuefbBGUIpOEgcxd7qUXQ 分布式锁
1.数据库锁:乐观锁和悲观锁
2.redis实现的分布式锁:
所有服务请求通过请求经过redis,所有服务器都统一set一个值,返回1说明获取到锁,其他的获取到的是0表面被占用。然后才能继续执行下面的逻辑。但是为了防止死锁和服务蹦,设置过期时间。
3.zookpeer分布式锁
相当于一个文件夹,有四种节点:持久性节点,持久性顺序节点,临时节点,临时性顺序节点
服务都去创建这个节点文件,如果被占用就失败,然后为了安全,才用名称排序获取锁。
二。高并发处理方案
1.服务拆分,分而治之
2.使用消息队列Mq
3.缓存
4.限流,降级。桶令牌的原理(一个桶有令牌,都来取,有令牌才可以访问服务)
三。如何保证线程安全
1.加锁 sychednizede reentrantlock
2.乐观锁 单例模式