欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Redis实现分布式锁

程序员文章站 2022-06-27 20:59:12
秒杀类场景特点是操作是单线程的,不用synchronized原因是:无法做到细粒度控制;只适合单点不适合集群。大多数项目采用分布式锁,实现方式可以为缓存redis/zk/数据库。分布式场景中,需要提供一种跨jvm的互斥机制来控制共享资源的访问。分布式锁的特点:一个方法同一时间只能被一个机器的一个线程执行;高可用、高性能的获取释放锁;具备可重入性;具备锁失效机制,防止死锁;非阻塞式,即没有获取到锁时直接返回失败;CAP理论:任何一个分布式系统都不能同时满足一致性、可用性和分区容错性...

分布式锁常用方案

秒杀类场景特点是操作是单线程的,不用synchronized原因是:

  1. 无法做到细粒度控制;
  2. 只适合单点不适合集群。大多数项目采用分布式锁,实现方式可以为缓存redis/zk/数据库Redis实现分布式锁

分布式场景中,需要提供一种跨jvm的互斥机制来控制共享资源的访问。
分布式锁的特点:

  1. 一个方法同一时间只能被一个机器的一个线程执行;
  2. 高可用、高性能的获取释放锁;
  3. 具备可重入性;
  4. 具备锁失效机制,防止死锁;
  5. 非阻塞式,即没有获取到锁时直接返回失败;

CAP理论:任何一个分布式系统都不能同时满足一致性、可用性和分区容错性。最多同时满足两项。一般牺牲强一致性,通过最终一致性来满足。实现方式为分布式事务或分布式锁。

限流

服务接口的流量控制策略:分流、降级、限流等。
限流策略,虽然降低了服务接口的访问频率和并发量,却换取服务接口和业务应用系统的高可用。
常用的限流算法由:漏桶算法和令牌桶算法。

本文地址:https://blog.csdn.net/chang_li/article/details/107145191