微服务和分布式的区别 什么时候需要分布式锁?
浏览量:1979
时间:2021-03-12 19:09:05
作者:admin
什么时候需要分布式锁?
首先需要知道非分布式环境下,用锁可以解决什么?
多线程环境下,共享资源的线程安全问题!这个时候的共享资源通常是在单机里面的多线程里存在竞争,从JAVA内存模型来看,可以通过锁住对象,锁住方法,锁住代码块等方式,避免共享资源的竞争!
而在分布式环境中,共享资源所要经过的代码,方法,都不是在一个JVM里面,也不是同一个进程!通过锁方法,代码块的方式不能解决共享资源的竞争,需要分布式的锁!
分布式锁通常在以下场景中使用:
1,全局ID的生成;
2,全局配置文件的修改;
3,分布式服务中的秒杀问题;
4,分布式环境下的重复提交
分布式锁通常有以下实现方式:
1,使用数据库的唯一主键来实现锁!
2,使用redis的指令:通常使用setnx方法,incr方法等进行实现
3,使用zookeeper:使用api生成临时节点实现锁!
最近在持续分享JAVA相关技术,有很多干货,敬请关注。。
微服务和分布式的区别 redis能扛多大并发量 redis 秒杀为什么不用incr
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。