《分布式锁》
场景通常在多消费者单数据源的情况下需要使用分布式锁多个消费者或者说多个线程、多个进程、多个服务实例等需要对单个数据源或者说共享资源、关键操作等进行访问和操作需要确保在同一时间只有一个消费者能够访问数据源从而避免数据不一致或者操作冲突。集群下的任务调度在分布式任务调度系统中可能会存在多个调度节点同时竞争执行同一个任务的情况。使用分布式锁可以确保同一时间只有一个调度节点能够执行某个任务避免任务的重复执行或者并发执行。分布式事务管理在分布式事务场景中可能需要对多个资源进行操作确保所有资源的操作要么全部成功要么全部失败。使用分布式锁可以实现分布式事务的并发控制和资源管理确保事务的一致性和可靠性。并发限流在高并发系统中可能需要对某些关键操作进行并发限流避免系统被过多的请求压垮。使用分布式锁可以控制并发访问的数量确保系统的稳定性和可用性。主流使用了redis或者zookeeper来实现分布式锁SET NX PX UUID Lua 自动续租 可靠常用 需要自己实现Redisson 功能完整生产常用 引入依赖有额外复杂度Redis 分布式锁方案对比方案一SET NX PX UUID Lua手写 Redis 分布式锁解决的问题保证多个服务实例同时竞争同一资源时只有一个实例执行。方案核心解决点问题解决方式多人抢锁NX保证只有一个请求成功获取锁服务宕机导致死锁PX设置过期时间锁自动释放误删别人锁UUID Lua校验锁持有者身份Redis操作并发问题Lua脚本保证判断和删除原子执行核心流程1. SET lock_key uuid NX PX 30000 ↓ 成功 获取锁执行业务 失败 等待/重试 ↓ 2. Lua释放锁 判断 当前value uuid 是 删除锁 否 不操作方案二Redisson 分布式锁使用方式lock.lock();try{// 业务代码}finally{lock.unlock();}解决的问题在SET NX PX UUID Lua基础上解决业务复杂场景下锁生命周期管理问题。方案核心解决点问题解决方式基础互斥Redis 分布式锁保证同一资源只有一个线程执行锁提前过期WatchDog 自动续期业务未完成时延长锁时间释放错锁通过线程 ID 校验只释放当前线程持有的锁多个线程等待提供阻塞等待机制避免频繁轮询重复加锁支持可重入锁同一线程可以多次获取同一把锁

相关新闻

彻底搞懂 shared_ptr:底层结构、原子线程安全、强弱计数、手写简易实现

彻底搞懂 shared_ptr:底层结构、原子线程安全、强弱计数、手写简易实现

本篇文章一次性彻底梳理清楚,从底层内存结构、双指针模型、控制块、原子计数、线程安全、weak_ptr 原理、内存释放时机,最后手写一份极简可运行的 shared_ptr / weak_ptr,吃透 C 智能指针核心。 一、先纠正最大误区:shared_ptr 内…

2026/10/18 5:42:44 阅读更多 →
TI Sitara EMAC硬件QoS与帧分类:嵌入式网络确定性保障实践

TI Sitara EMAC硬件QoS与帧分类:嵌入式网络确定性保障实践

1. 项目概述与核心价值在嵌入式网络开发,尤其是工业控制、车载电子或实时音视频传输这类对网络延迟和确定性要求极高的领域,单纯依靠软件协议栈来处理数据包的优先级是远远不够的。软件处理会引入不可预测的调度延迟,当网络流量突发时&#x…

2026/10/18 5:42:47 阅读更多 →
AI 自动操控电脑 OpenClaw 2.7.9 部署排坑与长期使用技巧汇总(含安装包)

AI 自动操控电脑 OpenClaw 2.7.9 部署排坑与长期使用技巧汇总(含安装包)

🦞OpenClaw(小龙虾)部署实战教程|搭建属于自己的本地桌面数字员工 适配平台:Windows10/11(64 位)、macOS12 及以上 稳定版本:v2.7.9 特点✨:图形化引导部署、无需命令行…

2026/10/20 2:31:34 阅读更多 →

最新新闻

Unity Shader技巧:移动端伪次表面散射模拟实战

Unity Shader技巧:移动端伪次表面散射模拟实战

1. 为什么我要写一篇“假”的次表面散射先聊点实在的。在Unity里做皮肤、蜡烛、树叶、大理石这类材质时,大家第一反应都是上真正的次表面散射(Subsurface Scattering,SSS)——就是光打进去之后在物体内部散射、再从其他地方溢出来…

2026/10/20 5:23:05 阅读更多 →
STM32+MPU6050六轴姿态解算工程:从I2C驱动到DMP四元数输出

STM32+MPU6050六轴姿态解算工程:从I2C驱动到DMP四元数输出

简介:STM32F103C8T6与MPU6050组合的完整工程,面向物联网、机器人及智能穿戴开发者,提供开箱即用的姿态解算方案。工程基于标准外设库,包含I2C驱动、原始数据读取、姿态解算及串口输出等核心模块,覆盖从底层寄存器配置到…

2026/10/20 5:23:05 阅读更多 →
PHP自建Web应用防护系统:三层架构与实战

PHP自建Web应用防护系统:三层架构与实战

搞安全的这些年,我一直有个看法:真正的Web应用防护,不能光靠买了云清洗和WAF就高枕无忧。流量清洗挡不住业务层的逻辑攻击,传统WAF规则库再全,也识别不了“你自己业务里那个只能输入三位数字的订单号”被塞进了恶意参数…

2026/10/20 5:23:05 阅读更多 →
Blending算法实战:模型融合中的原理、代码与避坑指南

Blending算法实战:模型融合中的原理、代码与避坑指南

堆叠学习(Stacking)和Blending算法,是我在做模型融合时最先认真研究的一对概念。很多人第一次听到Blending,是在某个数据挖掘比赛的Top方案里;等真到自己手上写代码时,往往会发现它对数据划分的要求比想象中…

2026/10/20 5:23:05 阅读更多 →
C# WebSocket消息收发封装实战:帧格式、掩码与分片解析

C# WebSocket消息收发封装实战:帧格式、掩码与分片解析

写这个系列写到第三篇了。第一篇处理了TCP监听和Accept循环,第二篇完成了HTTP Upgrade握手,到这一步客户端和服务器之间已经建立起了真正的WebSocket连接。接下来面对的问题很直接:怎么把消息干净地收进来、发出去,并且不让上层业…

2026/10/20 5:23:05 阅读更多 →
数据链路层核心原理:MAC地址、以太网帧与交换机转发机制解析

数据链路层核心原理:MAC地址、以太网帧与交换机转发机制解析

十年前我第一次在模拟器里敲下 show mac address-table,看着那几行 MAC 和端口映射,并不觉得数据链路层有什么特别。直到后来排障时发现,很多网络“通了却不对”的问题,根源都藏在这一层。数据链路层是连接物理传输与网络逻辑之间…

2026/10/20 5:22:05 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →