Spring Cloud基于Redis实现的分布式锁
基于Redis实现的分布式锁 Spring Cloud 分布式环境下,同一个服务都是部署在不同的机器上,这种情况无法像单体架构下数据一致性问题采用加锁就实现数据一致性问题,在高并发情况下,对于分布式架构显然是不合适的,针对这种情况我们就需要用到分布式锁了。 哪些场景需要用分布式锁 场景一:比较敏感的数据比如金额修改,同一时间只能有一个人操作,想象下2个人同时修改金额,一个加金额一个减金额,为了防止同时操作造成数据不一致,需要锁,如果是数据库需要的就是行锁或表锁,如果是在集群里,多个客户端同时修改一个共享的数据就需要分布式锁。 场景二:比如多台机器都可以定时执行某个任务,如果限制任务每次只能被一台机器执行,不能重复执行,就可以用分布式锁来做标记。 场景三:比如秒杀场景,要求并发量很高,那么同一件商品只能被一个用户抢到,那么就可以使用分布式锁实现。 分布式锁实现方式: 1、基于数据库实现分布式锁 2、基于缓存(redis,memcached,tair)实现分布式锁 3、基于Zookeeper实现分布式锁 为什么不使用数据库? 数据库是单点?搞两个数据库,数据之前双向同步。一旦挂掉快速切换...


