问题列表
作者:互联网
1.dubbo是如何使用的
2.reids是怎么用的(https://www.cnblogs.com/williamjie/p/11250679.html)
Redis分布式锁的实现原理(Redisson框架)
场景:如果一个人的账户被多个业务操作时。
如果该客户端面对的是一个redis cluster集群,他首先会根据hash节点选择一台机器。然后发送一段lua脚本到redis上,设置myLock这个锁key的生存时间是30秒。
锁互斥机制:如果客户端2来尝试加锁,执行了同样的一段lua脚本,发现myLock这个锁key已经存在了,此时客户端2会进入一个while循环,不停的尝试加锁。
watch dog自动延期机制:只要客户端1一旦加锁成功,就会启动一个watch dog看门狗,他是一个后台线程,会每隔10秒检查一下,如果客户端1还持有锁key,那么就会不断的延长锁key的生存时间。
可重入加锁机制:对客户端1的加锁次数,累加1。
释放锁机制:每次都对myLock数据结构中的那个加锁次数减1。如果发现加锁次数是0了,此时就会用:“del myLock”命令,从redis里删除这个key,然后呢,另外的客户端2就可以尝试完成加锁了。
3.多线程如何实现
4.分库策略是如何考虑的
5.zookeeper选举
6.spring
(1)IoC——“依赖注入(Dependency Injection)”。从名字上理解,所谓依赖注入,即组件之间的依赖关系由容器在运行期决定,即由容器动态地将某种依赖关系注入到组件之中。IoC的优点:降低了组件之间的耦合,降低了业务对象之间替换的复杂性,使之能够灵活的管理对象。
(2) AOP
标签:myLock,加锁,redis,列表,问题,key,组件,客户端 来源: https://blog.csdn.net/dingding_p/article/details/115935340