一. 分布式锁应用场景

  • 秒杀抢购防止超卖问题产生
  • 防止后端接口重复调用
  • 幂等性

二. 分布式锁设计原则

  • 互斥
  • 死锁
  • 性能
  • 重入

三. 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服务

https://1902756969.github.io/Hexo/2023/02/11/电商方案/电商秒杀下/
作者
发布于
2023年2月11日
许可协议