业务:第八天

分布式锁有哪些实现方式?reids是如何实现分布式锁的?讲一讲Redisson实现分布式锁的原理?

Redisson的加锁、设置过期时间等操作基于lua脚本完成(保证多条Redis命令的原子性)

  • Redisson实现分布锁的流程
    • 首先线程会先尝试获取锁
    • 尝试加锁成功后,redisson会再开一个Watch dog(看门狗)线程来监控持有锁的线程。
    • 看门狗线程会每隔releaseTime(默认30秒)/3的时间做一次续期,增加线程持有锁的时间
    • 同时线程操作redis,完成之后手动释放锁,redisson自动通知Watch dog撤销线程的监控。
  • 当有新线程来获取锁时,会先尝试加锁,加锁失败会进行重试,重试的时间可以在代码中通过.tryLock设置重试时间,它是可以在高并发的情况,提高分布式锁的使用性能

补充:介绍一下你们项目中的优惠券功能

使用优惠券功能在我的项目中有以下几个流程:

首先,在订单确认页面查询可用优惠方案,主要判断订单是否符合优惠的条件,例如满减门槛或者是否适用优惠券的分类;

其次,在订单创建页面核销优惠券、查询优惠券优惠明细、查询优惠规则;

最后,当用户取消订单时,还需要退还优惠券;支付后退订单、优惠券则不用退还处理;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值