Redis实现分布式锁
程序员文章站
2022-06-27 20:59:12
秒杀类场景特点是操作是单线程的,不用synchronized原因是:无法做到细粒度控制;只适合单点不适合集群。大多数项目采用分布式锁,实现方式可以为缓存redis/zk/数据库。分布式场景中,需要提供一种跨jvm的互斥机制来控制共享资源的访问。分布式锁的特点:一个方法同一时间只能被一个机器的一个线程执行;高可用、高性能的获取释放锁;具备可重入性;具备锁失效机制,防止死锁;非阻塞式,即没有获取到锁时直接返回失败;CAP理论:任何一个分布式系统都不能同时满足一致性、可用性和分区容错性...
分布式锁常用方案
秒杀类场景特点是操作是单线程的,不用synchronized原因是:
- 无法做到细粒度控制;
- 只适合单点不适合集群。大多数项目采用分布式锁,实现方式可以为
缓存redis/zk/数据库
。
分布式场景中,需要提供一种跨jvm的互斥机制来控制共享资源的访问。
分布式锁的特点:
- 一个方法同一时间只能被一个机器的一个线程执行;
- 高可用、高性能的获取释放锁;
- 具备可重入性;
- 具备锁失效机制,防止死锁;
- 非阻塞式,即没有获取到锁时直接返回失败;
CAP理论
:任何一个分布式系统都不能同时满足一致性、可用性和分区容错性。最多同时满足两项。一般牺牲强一致性,通过最终一致性来满足。实现方式为分布式事务或分布式锁。
限流
服务接口的流量控制策略:分流、降级、限流等。
限流策略,虽然降低了服务接口的访问频率和并发量,却换取服务接口和业务应用系统的高可用。
常用的限流算法由:漏桶算法和令牌桶算法。
本文地址:https://blog.csdn.net/chang_li/article/details/107145191