在分布式方案中,我相信您需要使用分布式锁来访问关键资源,或控制时间耗费操作的并发。
当然,还有许多解决方案可以分布式锁,例如数据库,Redis,ZK等。本文主要结合了一个在线案例,以解释REDIS分布式锁的实现。
重复的数据处理问题发生在某个天线上。经过调查,发现事实证明单个处理时间更长。REDIS分布式锁会导致同时处理相同的请求。
实际上,这是一个问题。对于分布式锁,我们需要考虑设置过期和异常的时间以释放锁定?
以上问题是本文中要讨论的主题。
该项目使用更简单的自定义REDIS分布式锁。为了避免定义默认到期时间10s,如下:
缺乏自动更新锁。
为了响应此场景,您可以考虑如何自动续订锁定 - 当没有执行业务时,当然,您还可以自定义当您打开背景线程时锁定的线程的续订。
Redisson还基于这个想法,以实现自动续订的分布式锁定。各种异常条件也被认为更完整。全面考虑是全面考虑,以优化Redisson的分布式锁定解决方案。
REDIS Service使用的Tencent Cloud的哨兵模式体系结构,它可以打开代理地址访问外界的访问,因此可以在此处配置Stand -Alone模式配置。
如果您是您构建的Redis Sentry模式体系结构,则需要根据文档配置配置相关的必要参数
它类似于JDK提供的锁吗?它不是简单吗?
正是Redisson等优秀的开源产品的出现,让我们在业务发展中投入更多时间...
让我们看一下Redisson常规分布式锁的实现。Redissonlock的主要分析
通过schedusxpirationrenewal锁定合同
以上是将redisson客户端工具的特定实现到redis分布式锁定,该锁主要解决以下问题
1.死锁问题:设置到期时间
2.重新构成问题:重新加载+1,释放锁-1,当完全释放0个时代的值时
3.更新问题:可以解决锁的早期发布问题
4.锁定释放:谁被锁定将发布
本文用作在线问题,最终选择了REDIS分布式锁的常见实施方案以选择Redisson解决方案。并分析Redisson的具体实施详细信息
相关参考:
原始:https://juejin.cn/post/7101679218408292382