一. 分布式锁应用场景
- 秒杀抢购防止超卖问题产生
- 防止后端接口重复调用
- 幂等性
二. 分布式锁设计原则
- 互斥
- 死锁
- 性能
- 重入
三. redis单节点和多节点分布式锁比较
- 单节点分布式锁性能高,但容易有锁丢失情况发生
- 多节点分布式锁性能低,安全可靠性比单节点高
四. redisson中Redlock实现
- 当且仅当从大多数(N/2+1,这里是3个节点)的Redis节点都取到锁,并且使用的时间小于锁失效时间时,锁才算获取成功。
五. redlock算法中key和value组成
- KEYS[1]就是分布式锁的key,即REDLOCK_KEY
- ARGV[1]就是internalLockLeaseTime,即锁的租约时间,默认30s
- ARGV[2]就是getLockName(threadId),是获取锁时set的唯一值,即UUID+threadId
雪花算法 分布式id开源
六. 服务启动顺序
- redis,mq,db,nginx服务都要先启动
- 首先启动eureka服务
- 再次启动zuul网关服务
- 然后启动order服务(订单消息发送者)
- 然后启动orderReceive服务(订单消息接收者)
- 启动user服务