当前位置: 首页 > news >正文

【PmHub面试篇】PmHub集成Redission分布式锁保障流程状态更新面试专题解析

你好,欢迎来到本次关于PmHub整合TransmittableThreadLocal (TTL)缓存用户数据的面试系列分享。在这篇文章中,我们将深入探讨这一技术领域的相关面试题预测。若想对相关内容有更透彻的理解,强烈推荐参考之前发布的博文:【PmHub后端篇】Redis分布式锁:保障PmHub流程状态更新的关键

1 什么是分布式锁,为什么需要使用分布式锁?


  • 分布式锁是一种用于在分布式系统中控制多个节点对共享资源的访问机制,防止出现资源争用和并发问题
  • 使用分布式锁可以确保在多个进程或服务实例中,某些关键代码段能够互斥执行,保证数据一致性和正确性

2 Redis实现分布式锁的基本原理是什么?


  • 使用SET key value NX PX timeout命令,其中NX保证只有在键不存在时才能设置成功
  • PX设置键的过期时间,以防止死锁的出现,从而保证同一时间只有一个客户端能获取到锁。

3 如何处理分布式锁的可重入性问题?


  • 可重入性问题是指同一个线程在持有锁的情况下可以再次获取锁
  • 为解决这个问题,可以在Redis锁的值中记录线程信息,每次加锁时检查并更新计数器

4 如果在获取锁之后,业务执行过程中应用程序崩溃,如何保证锁最终被释放?


  • 通过给锁设置过期时间来防止死锁,即使应用程序崩溃,锁也会在过期时间到达后自动释放。
  • 另外,可以通过watchdog机制定期延长锁的过期时间,确保在业务逻辑长时间运行时锁不会提前释放

5 如何优化Redis分布式锁的性能?


  • 使用Lua脚本进行加锁和释放锁操作,确保这两个操作的原子性
  • 使用Redisson库,它提供了高效、健壮的分布式锁实现。

6 一般实现分布式锁都有哪些方式?使用Redis如何设计分布式锁?使用zk来设计分布式锁可以吗?这两种分布式锁的实现方式哪种效率比较高?


  • 一般实现分布式锁的方式有数据库、Zookeeper、Redis
  • 使用Redis设计分布式锁可通过SET key value NX PX timeout命令实现。
  • 使用Zookeeper可以设计分布式锁。
  • Redis和Zookeeper实现的分布式锁各有特点:
    • Redis分布式锁:获取锁时需要不断尝试获取锁,比较消耗性能;客户端挂掉后需等待超时时间释放锁;性能开销较大;实现相对简单;数据一致性需额外配置,如设置超时和避免死锁;适用于简单的分布式锁需求;基于Redis键值对实现。
    • ZK分布式锁:获取不到锁时注册监听器,性能开销较小;客户端挂掉后临时znode自动删除,锁自动释放;性能开销较小;需要配置和管理Zookeeper;基于Zookeeper本身的机制保障数据一致性;适用于需要高可靠性和一致性的分布式锁需求;基于Zookeeper的临时节点实现。
特性Redis 分布式锁ZK 分布式锁
锁获取方式需要不断尝试获取锁, 比较消耗性能获取不到临时注册监听器, 性能开销比较小
锁释放方式客户端挂掉后需等待超时时间释放锁客户端挂掉临时 znode 自动删除, 锁自动释放
性能开销较大较小
实现复杂度简单需要配置和管理 Zookeeper
数据一致性保障需要额外配置, 如设置超时时间避免死锁基于 Zookeeper 本身的机制保障
适用场景简单的分布式锁需求需求高可靠性和一致性的分布式锁需求
锁定机制基于 Redis 键值对实现基于 Zookeeper 的临时节点实现

7 参考链接

  1. 分布式锁Redisson
  2. PmHub集成Redission分布式锁保障流程状态更新

相关文章:

  • ubuntu24.04 使用apt指令只下载不安装软件
  • Ubuntu中常用的网络命令指南
  • Unity3D中Newtonsoft.Json序列化优化策略
  • C++11实现TCP网络通讯服务端处理逻辑简化版
  • Vue2数组数字字段求和技巧 数字求和方法
  • 20250605在荣品的PRO-RK3566开发板的Android13下让PMIC芯片RK809在长按下开机
  • 设置存储器若干单元为相同的字节
  • CMake指令:add_definitions
  • CentOS 7 如何pip3安装pyaudio?
  • Windows下安装MySQL8.X
  • 【JVM】三色标记法原理
  • GPU加速与非加速的深度学习张量计算对比Demo,使用PyTorch展示关键差异
  • Python[数据结构及算法 --- 栈]
  • tcp/udp
  • 6月5日day45
  • Python实现markdown文件转word
  • 六、数据库的安全性
  • 书籍将正方形矩阵顺时针转动90°(8)0605
  • RADIUS-如何获取凭证
  • [蓝桥杯]植树
  • 网站建设微金手指下拉15/seo承诺排名的公司
  • 门户网站规划方案/如何优化seo技巧
  • wordpress底部信息后台修改/连云港网站seo
  • 客服外包网站/网站托管
  • 新闻类网站怎么做seo/宁波网站推广方案
  • 一键生成海报的网站/手机百度网盘网页版登录入口