自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 SolonCode v.. 发布 - 编程智能体(新增子代理和浏览器能力)

项目内存 ./CLAUDE.md 或 ./.claude/CLAUDE.md 项目的团队共享说明 项目架构、编码标准、常见工作流 通过源代码控制的团队成员。项目规则 ./.claude/rules/*.md 模块化、特定主题的项目说明 特定于语言的指南、测试约定、API 标准 通过源代码控制的团队成员。项目内存(本地) ./CLAUDE.local.md 个人的项目特定偏好设置 您的沙箱 URL、首选测试数据 仅您(当前项目)

2026-05-07 18:02:12 32

原创 C# + ViewFaceCore 快速实现高精度人脸识别

在实际使用中该控件主要用于整型或浮点的计数显示,与普通的LineEdit组件不同,该组件可以在前后增加特殊符号并提供了上下幅度的调整按钮,灵活性更强。接下来将用一个简单的案例展示如何使用 QSpinBox组件,该组件有两个版本:QSpinBox用于展示单精度浮点数,而QDoubleSpinBox() 则可以展示精度更高的数值,需要注意的是,该组件有两个特殊参数,当使用setPrefix() 时可以指定在前方加入特殊符号,而使用 setSuffix() 时则可以在后方追加特殊符号,我们就可以后方追加为例。

2026-05-07 17:55:04 105

原创 Openclaw接入自动发文教程

13 年后,我用 fetch-event-source 订阅大模型的“思维流”,用 OCR 解锁图片中的文字——前端,正在成为 AI 产品的第一道体验防线。'Authorization': `Bearer ${getToken()}`, // 从 Pinia 或 localStorage 获取。关键设计:状态分为 'idle' | 'parsing' | 'success' | 'failed',对应四个 UI 区块,避免用户困惑。message.error('翻译服务异常,请稍后重试');

2026-05-07 17:46:58 49

原创 EF Core 原生 SL 实战:FromSl、Sluery 与对象映射边界

你的游戏引擎是谁写的?是Python turtle出轨了C++的语法,还是C++红杏出墙学会了Python的撩人技巧?turtle.fd(d).left(72) —— 这链式调用,这丝滑手感,这简直是把C++从"西装革履的老干部"改造成了"穿着潮牌的邻家哥哥"!它让C++放下了身段,穿上了Python的便装,但骨子里还是那个能操控硬件、驾驭操作系统、构建数字文明的底层王者!C++不仅学会了Python的简单,还保持了C++的优雅链式语法!但当你用C++精灵库画图时,你学的是——怎么在数字世界的地基上画图!

2026-05-07 17:38:03 45

原创 接口测试——pytest框架续集

在Word模板中,只需使用{{ rich_text_var }}引用该变量,即可渲染成包含多种格式的连续段落。由于Word文档 (.docx) 本质上是一个压缩包,其中的图片以二进制形式存储在word/media/目录下,且在某些Word版本中,图片文件名可能被自动重命名(例如改为 image1.png),与原始文件名无关。示例:{{ base_value_float|my_filterB(2) }} 中,base_value_float是变量,my_filterB是过滤器名,2是传递的参数。

2026-05-07 17:30:04 39

原创 C# + ViewFaceCore 快速实现高精度人脸识别

在 DAD 中,Actor 不再只是并发模型,而是领域的最小自治单元。Mailbox 不是 AI Actor 的边界,也不承担语义职责。没有直接调用,没有结构耦合,只有被理解后的意图驱动执行。而是承认:在 AI 时代,系统必须先“理解”,再“执行”。在 DAD 中,领域的最小自治单元是 AI Actor。Agent 才是 AI Actor 的物理与逻辑边界。所有进入 Actor 的信息,必须先经过 Agent。Agent 是唯一的语义入口,也是唯一的语义出口。领域之间的耦合,从方法签名,转移成了消息结构。

2026-05-06 22:44:14 146

原创 Openclaw接入自动发文教程

Session被销毁: ID=" + se.getSession().getId() + ", 时间=" + new java.util.Date() + "。Session被创建: ID=" + se.getSession().getId() + ", 时间=" + new java.util.Date());

2026-05-06 22:38:42 121

原创 EF Core 原生 SL 实战:FromSl、Sluery 与对象映射边界

第七个参数是 auto.leader.rebalance.enable,表示是否允许定期选举 leader,这个参数最好也设置为 false,如果设置为 true 的话,即使当前 leader 一直运行的很稳定,Kafka 也会重新选举出一个新的 leader 来替代它。第四个参数是 segment.bytes ,与之对应的 broker 参数是 log.segment.bytes,同样是控制 Log Segment 文件的大小,默认是 1GB。连接的配置是一个三元组,包括<协议名称,主机名,端口号>。

2026-05-06 22:31:54 192

原创 接口测试——pytest框架续集

在Word模板中,只需使用{{ rich_text_var }}引用该变量,即可渲染成包含多种格式的连续段落。由于Word文档 (.docx) 本质上是一个压缩包,其中的图片以二进制形式存储在word/media/目录下,且在某些Word版本中,图片文件名可能被自动重命名(例如改为 image1.png),与原始文件名无关。示例:{{ base_value_float|my_filterB(2) }} 中,base_value_float是变量,my_filterB是过滤器名,2是传递的参数。

2026-05-06 22:25:16 146

原创 接口测试——pytest框架续集

在Word模板中,只需使用{{ rich_text_var }}引用该变量,即可渲染成包含多种格式的连续段落。由于Word文档 (.docx) 本质上是一个压缩包,其中的图片以二进制形式存储在word/media/目录下,且在某些Word版本中,图片文件名可能被自动重命名(例如改为 image1.png),与原始文件名无关。示例:{{ base_value_float|my_filterB(2) }} 中,base_value_float是变量,my_filterB是过滤器名,2是传递的参数。

2026-05-06 22:19:54 188

原创 SolonCode v.. 发布 - 编程智能体(新增子代理和浏览器能力)

这里用的ChatPromptTemplate.from_template和上的ChatPromptTemplate.from_messages不同,区别在于前者比较简单,相当于后者直接用user字典的形式,后者from_messages有langchain框架提供的prompt模板。"你是一位高考作文专家。langchain中提供的chain链组件,能够帮助我门快速的实现各个组件的流水线式的调用,和模型的问答。"请给主题为 {topic} 的议论文写一个 总-递进-总 的简短大纲,一共分为5段。

2026-05-05 20:55:02 119

原创 C# + ViewFaceCore 快速实现高精度人脸识别

在 DAD 中,Actor 不再只是并发模型,而是领域的最小自治单元。Mailbox 不是 AI Actor 的边界,也不承担语义职责。没有直接调用,没有结构耦合,只有被理解后的意图驱动执行。而是承认:在 AI 时代,系统必须先“理解”,再“执行”。在 DAD 中,领域的最小自治单元是 AI Actor。Agent 才是 AI Actor 的物理与逻辑边界。所有进入 Actor 的信息,必须先经过 Agent。Agent 是唯一的语义入口,也是唯一的语义出口。领域之间的耦合,从方法签名,转移成了消息结构。

2026-05-05 20:32:08 159

原创 Openclaw接入自动发文教程

Session被销毁: ID=" + se.getSession().getId() + ", 时间=" + new java.util.Date() + "。Session被创建: ID=" + se.getSession().getId() + ", 时间=" + new java.util.Date());

2026-05-05 20:14:02 206

原创 EF Core 原生 SL 实战:FromSl、Sluery 与对象映射边界

第七个参数是 auto.leader.rebalance.enable,表示是否允许定期选举 leader,这个参数最好也设置为 false,如果设置为 true 的话,即使当前 leader 一直运行的很稳定,Kafka 也会重新选举出一个新的 leader 来替代它。第四个参数是 segment.bytes ,与之对应的 broker 参数是 log.segment.bytes,同样是控制 Log Segment 文件的大小,默认是 1GB。连接的配置是一个三元组,包括<协议名称,主机名,端口号>。

2026-05-05 19:57:18 192

原创 接口测试——pytest框架续集

在Word模板中,只需使用{{ rich_text_var }}引用该变量,即可渲染成包含多种格式的连续段落。由于Word文档 (.docx) 本质上是一个压缩包,其中的图片以二进制形式存储在word/media/目录下,且在某些Word版本中,图片文件名可能被自动重命名(例如改为 image1.png),与原始文件名无关。示例:{{ base_value_float|my_filterB(2) }} 中,base_value_float是变量,my_filterB是过滤器名,2是传递的参数。

2026-05-05 19:40:32 220

原创 SolonCode v.. 发布 - 编程智能体(新增子代理和浏览器能力)

这里用的ChatPromptTemplate.from_template和上的ChatPromptTemplate.from_messages不同,区别在于前者比较简单,相当于后者直接用user字典的形式,后者from_messages有langchain框架提供的prompt模板。"你是一位高考作文专家。langchain中提供的chain链组件,能够帮助我门快速的实现各个组件的流水线式的调用,和模型的问答。"请给主题为 {topic} 的议论文写一个 总-递进-总 的简短大纲,一共分为5段。

2026-05-04 20:18:48 144

原创 C# + ViewFaceCore 快速实现高精度人脸识别

在 DAD 中,Actor 不再只是并发模型,而是领域的最小自治单元。Mailbox 不是 AI Actor 的边界,也不承担语义职责。没有直接调用,没有结构耦合,只有被理解后的意图驱动执行。而是承认:在 AI 时代,系统必须先“理解”,再“执行”。在 DAD 中,领域的最小自治单元是 AI Actor。Agent 才是 AI Actor 的物理与逻辑边界。所有进入 Actor 的信息,必须先经过 Agent。Agent 是唯一的语义入口,也是唯一的语义出口。领域之间的耦合,从方法签名,转移成了消息结构。

2026-05-04 20:00:22 135

原创 Openclaw接入自动发文教程

Session被销毁: ID=" + se.getSession().getId() + ", 时间=" + new java.util.Date() + "。Session被创建: ID=" + se.getSession().getId() + ", 时间=" + new java.util.Date());

2026-05-04 19:41:35 212

原创 EF Core 原生 SL 实战:FromSl、Sluery 与对象映射边界

第七个参数是 auto.leader.rebalance.enable,表示是否允许定期选举 leader,这个参数最好也设置为 false,如果设置为 true 的话,即使当前 leader 一直运行的很稳定,Kafka 也会重新选举出一个新的 leader 来替代它。第四个参数是 segment.bytes ,与之对应的 broker 参数是 log.segment.bytes,同样是控制 Log Segment 文件的大小,默认是 1GB。连接的配置是一个三元组,包括<协议名称,主机名,端口号>。

2026-05-04 19:23:18 167

原创 接口测试——pytest框架续集

在Word模板中,只需使用{{ rich_text_var }}引用该变量,即可渲染成包含多种格式的连续段落。由于Word文档 (.docx) 本质上是一个压缩包,其中的图片以二进制形式存储在word/media/目录下,且在某些Word版本中,图片文件名可能被自动重命名(例如改为 image1.png),与原始文件名无关。示例:{{ base_value_float|my_filterB(2) }} 中,base_value_float是变量,my_filterB是过滤器名,2是传递的参数。

2026-05-04 19:06:53 202

原创 我们如何同步 .NET 的虚拟单体仓库(一)

Workflows (项目级):存储在项目根目录的 .agent/workflows 中。Skills (全局库):实际的代码、脚本和指南,存储在系统级目录(如 ~/.gemini/antigravity/skills)。# 此时目录结构应为 ~/.gemini/antigravity/skills/ui-ux-pro-max-skill/...# 此时目录结构应为 ~/.gemini/antigravity/skills/skills/...节省空间:不需要在每个项目中重复下载几百 MB 的技能文件。

2026-05-03 21:49:34 262

原创 AI 大模型职业选择

本文介绍的关键优化技巧包括:基于测量的针对性优化、内存管理最佳实践、高效的异步编程模式、合理的数据结构选择、数据库访问优化以及生产环境监控等。值得注意的是,性能优化应当遵循"先测量后优化"的原则,避免过早和过度的优化。同时,在追求性能提升的过程中,不应牺牲代码的可维护性和可读性。通过平衡各种因素,开发者可以构建出既高效又健壮的 .NET 应用程序,为用户提供流畅的使用体验,为企业创造更大的价值。最终,持续学习最新的 .NET 性能优化技术,结合实际应用场景进行实践和验证,是保持应用竞争力的关键。

2026-05-03 21:41:08 266

原创 PingCraft:从需求文档到可追踪工作项的 Agent 实践之路

print(f"请求成功!状态码: {response.status_code}")print("响应内容前100个字符:", response.text[:100])print(f"请求失败!状态码: {response.status_code}")API交互: 与各种Web服务(如天气API、社交媒体API)进行通信,获取或提交数据。requests 是一个用于发送请求的 Python 库。轻松发送GET、POST、PUT、DELETE等请求。自动化测试: 自动化测试Web应用的接口功能。

2026-05-03 21:31:35 25

原创 接口测试——pytest框架续集

在Word模板中,只需使用{{ rich_text_var }}引用该变量,即可渲染成包含多种格式的连续段落。由于Word文档 (.docx) 本质上是一个压缩包,其中的图片以二进制形式存储在word/media/目录下,且在某些Word版本中,图片文件名可能被自动重命名(例如改为 image1.png),与原始文件名无关。示例:{{ base_value_float|my_filterB(2) }} 中,base_value_float是变量,my_filterB是过滤器名,2是传递的参数。

2026-05-03 21:13:06 207

原创 我们如何同步 .NET 的虚拟单体仓库(一)

Workflows (项目级):存储在项目根目录的 .agent/workflows 中。Skills (全局库):实际的代码、脚本和指南,存储在系统级目录(如 ~/.gemini/antigravity/skills)。# 此时目录结构应为 ~/.gemini/antigravity/skills/ui-ux-pro-max-skill/...# 此时目录结构应为 ~/.gemini/antigravity/skills/skills/...节省空间:不需要在每个项目中重复下载几百 MB 的技能文件。

2026-05-02 19:52:33 264

原创 AI 大模型职业选择

本文介绍的关键优化技巧包括:基于测量的针对性优化、内存管理最佳实践、高效的异步编程模式、合理的数据结构选择、数据库访问优化以及生产环境监控等。值得注意的是,性能优化应当遵循"先测量后优化"的原则,避免过早和过度的优化。同时,在追求性能提升的过程中,不应牺牲代码的可维护性和可读性。通过平衡各种因素,开发者可以构建出既高效又健壮的 .NET 应用程序,为用户提供流畅的使用体验,为企业创造更大的价值。最终,持续学习最新的 .NET 性能优化技术,结合实际应用场景进行实践和验证,是保持应用竞争力的关键。

2026-05-02 19:45:11 217

原创 PingCraft:从需求文档到可追踪工作项的 Agent 实践之路

print(f"请求成功!状态码: {response.status_code}")print("响应内容前100个字符:", response.text[:100])print(f"请求失败!状态码: {response.status_code}")API交互: 与各种Web服务(如天气API、社交媒体API)进行通信,获取或提交数据。requests 是一个用于发送请求的 Python 库。轻松发送GET、POST、PUT、DELETE等请求。自动化测试: 自动化测试Web应用的接口功能。

2026-05-02 19:37:45 33

原创 MindSpore 环境配置完全指南

随着协议的成熟,OData 逐渐步入标准化轨道,v4.0 版本正式通过 OASIS 联盟的标准化审核,并最终获得 ISO/IEC 的批准(ISO/IEC 20802-1:2016),确立了其在 RESTful API 领域的权威地位。服务端分页 ($skiptoken):与简单的偏移量分页($skip)不同,服务端分页利用 $skiptoken 返回一个不透明的令牌,该令牌通常对应数据库游标或上一次查询的最后一条记录的键值 12。因此,OData 推荐并实现了基于实体标签(ETag)的乐观并发控制。

2026-05-02 19:30:53 293

原创 接口测试——pytest框架续集

在Word模板中,只需使用{{ rich_text_var }}引用该变量,即可渲染成包含多种格式的连续段落。由于Word文档 (.docx) 本质上是一个压缩包,其中的图片以二进制形式存储在word/media/目录下,且在某些Word版本中,图片文件名可能被自动重命名(例如改为 image1.png),与原始文件名无关。示例:{{ base_value_float|my_filterB(2) }} 中,base_value_float是变量,my_filterB是过滤器名,2是传递的参数。

2026-05-02 19:23:51 312

原创 PDE (Processing D Editor) 三维场景编辑器 · 软件白皮书 · 基于 v..

服务成功加锁后,启动后台守护线程,每隔锁过期时间的 1/3 (如 10 秒)检查锁是否仍被自身持有,若持有则延长锁的过期时间(重置为 30 秒),直到业务完成主动释放锁。哨兵将从节点切换为主节点,新主节点无该锁数据,其他服务可重新加锁,导致原锁失效,出现多个服务持有锁的情况。成因:锁 key 粒度太粗(如用“lock:stock”作为所有商品的库存锁),导致所有商品的库存操作都互斥,即使操作不同商品,也需排队等待锁释放,彻底丧失分布式系统的并发优势。③ 释放锁时自动同步清理所有节点锁数据,无需手动协调。

2026-05-01 20:09:22 351

原创 聊一聊 C# 中的闭包陷阱:foreach 循环的坑你还记得吗?

虽然接触计算机有一段时间了,但是我的视野一直局限于一个较小的范围之内,往往只能看到于算法竞赛相关的内容,计算机各种文件在我看来十分复杂,认为构建他们并能达到目的是一件困难的事情,然而近期我观看了油管上Magicalbat大神的视频,发现其实它们的本质都惊人地简单:所有计算机文件,都是按特定规则组织的二进制数据,是人为规定好格式再由计算机解析,对于我们来说,只要根据规定格式进行编辑,就能够成功构建。写完这段代码,你可能会发现:生成WAV文件的过程,就是“按格式规范往文件里写二进制数据”的过程。

2026-05-01 19:57:48 314

原创 PDE (Processing D Editor) 三维场景编辑器 · 软件白皮书 · 基于 v..

服务成功加锁后,启动后台守护线程,每隔锁过期时间的 1/3 (如 10 秒)检查锁是否仍被自身持有,若持有则延长锁的过期时间(重置为 30 秒),直到业务完成主动释放锁。哨兵将从节点切换为主节点,新主节点无该锁数据,其他服务可重新加锁,导致原锁失效,出现多个服务持有锁的情况。成因:锁 key 粒度太粗(如用“lock:stock”作为所有商品的库存锁),导致所有商品的库存操作都互斥,即使操作不同商品,也需排队等待锁释放,彻底丧失分布式系统的并发优势。③ 释放锁时自动同步清理所有节点锁数据,无需手动协调。

2026-04-30 20:09:56 289

原创 聊一聊 C# 中的闭包陷阱:foreach 循环的坑你还记得吗?

虽然接触计算机有一段时间了,但是我的视野一直局限于一个较小的范围之内,往往只能看到于算法竞赛相关的内容,计算机各种文件在我看来十分复杂,认为构建他们并能达到目的是一件困难的事情,然而近期我观看了油管上Magicalbat大神的视频,发现其实它们的本质都惊人地简单:所有计算机文件,都是按特定规则组织的二进制数据,是人为规定好格式再由计算机解析,对于我们来说,只要根据规定格式进行编辑,就能够成功构建。写完这段代码,你可能会发现:生成WAV文件的过程,就是“按格式规范往文件里写二进制数据”的过程。

2026-04-30 19:57:56 328

原创 PDE (Processing D Editor) 三维场景编辑器 · 软件白皮书 · 基于 v..

服务成功加锁后,启动后台守护线程,每隔锁过期时间的 1/3 (如 10 秒)检查锁是否仍被自身持有,若持有则延长锁的过期时间(重置为 30 秒),直到业务完成主动释放锁。哨兵将从节点切换为主节点,新主节点无该锁数据,其他服务可重新加锁,导致原锁失效,出现多个服务持有锁的情况。成因:锁 key 粒度太粗(如用“lock:stock”作为所有商品的库存锁),导致所有商品的库存操作都互斥,即使操作不同商品,也需排队等待锁释放,彻底丧失分布式系统的并发优势。③ 释放锁时自动同步清理所有节点锁数据,无需手动协调。

2026-04-29 19:37:08 313

原创 聊一聊 C# 中的闭包陷阱:foreach 循环的坑你还记得吗?

虽然接触计算机有一段时间了,但是我的视野一直局限于一个较小的范围之内,往往只能看到于算法竞赛相关的内容,计算机各种文件在我看来十分复杂,认为构建他们并能达到目的是一件困难的事情,然而近期我观看了油管上Magicalbat大神的视频,发现其实它们的本质都惊人地简单:所有计算机文件,都是按特定规则组织的二进制数据,是人为规定好格式再由计算机解析,对于我们来说,只要根据规定格式进行编辑,就能够成功构建。写完这段代码,你可能会发现:生成WAV文件的过程,就是“按格式规范往文件里写二进制数据”的过程。

2026-04-29 19:24:48 323

原创 PDE (Processing D Editor) 三维场景编辑器 · 软件白皮书 · 基于 v..

服务成功加锁后,启动后台守护线程,每隔锁过期时间的 1/3 (如 10 秒)检查锁是否仍被自身持有,若持有则延长锁的过期时间(重置为 30 秒),直到业务完成主动释放锁。哨兵将从节点切换为主节点,新主节点无该锁数据,其他服务可重新加锁,导致原锁失效,出现多个服务持有锁的情况。成因:锁 key 粒度太粗(如用“lock:stock”作为所有商品的库存锁),导致所有商品的库存操作都互斥,即使操作不同商品,也需排队等待锁释放,彻底丧失分布式系统的并发优势。③ 释放锁时自动同步清理所有节点锁数据,无需手动协调。

2026-04-28 19:31:04 368

原创 聊一聊 C# 中的闭包陷阱:foreach 循环的坑你还记得吗?

虽然接触计算机有一段时间了,但是我的视野一直局限于一个较小的范围之内,往往只能看到于算法竞赛相关的内容,计算机各种文件在我看来十分复杂,认为构建他们并能达到目的是一件困难的事情,然而近期我观看了油管上Magicalbat大神的视频,发现其实它们的本质都惊人地简单:所有计算机文件,都是按特定规则组织的二进制数据,是人为规定好格式再由计算机解析,对于我们来说,只要根据规定格式进行编辑,就能够成功构建。写完这段代码,你可能会发现:生成WAV文件的过程,就是“按格式规范往文件里写二进制数据”的过程。

2026-04-28 19:19:14 319

原创 PDE (Processing D Editor) 三维场景编辑器 · 软件白皮书 · 基于 v..

服务成功加锁后,启动后台守护线程,每隔锁过期时间的 1/3 (如 10 秒)检查锁是否仍被自身持有,若持有则延长锁的过期时间(重置为 30 秒),直到业务完成主动释放锁。哨兵将从节点切换为主节点,新主节点无该锁数据,其他服务可重新加锁,导致原锁失效,出现多个服务持有锁的情况。成因:锁 key 粒度太粗(如用“lock:stock”作为所有商品的库存锁),导致所有商品的库存操作都互斥,即使操作不同商品,也需排队等待锁释放,彻底丧失分布式系统的并发优势。③ 释放锁时自动同步清理所有节点锁数据,无需手动协调。

2026-04-27 17:28:42 367

原创 聊一聊 C# 中的闭包陷阱:foreach 循环的坑你还记得吗?

虽然接触计算机有一段时间了,但是我的视野一直局限于一个较小的范围之内,往往只能看到于算法竞赛相关的内容,计算机各种文件在我看来十分复杂,认为构建他们并能达到目的是一件困难的事情,然而近期我观看了油管上Magicalbat大神的视频,发现其实它们的本质都惊人地简单:所有计算机文件,都是按特定规则组织的二进制数据,是人为规定好格式再由计算机解析,对于我们来说,只要根据规定格式进行编辑,就能够成功构建。写完这段代码,你可能会发现:生成WAV文件的过程,就是“按格式规范往文件里写二进制数据”的过程。

2026-04-27 17:18:14 286

原创 PDE (Processing D Editor) 三维场景编辑器 · 软件白皮书 · 基于 v..

服务成功加锁后,启动后台守护线程,每隔锁过期时间的 1/3 (如 10 秒)检查锁是否仍被自身持有,若持有则延长锁的过期时间(重置为 30 秒),直到业务完成主动释放锁。哨兵将从节点切换为主节点,新主节点无该锁数据,其他服务可重新加锁,导致原锁失效,出现多个服务持有锁的情况。成因:锁 key 粒度太粗(如用“lock:stock”作为所有商品的库存锁),导致所有商品的库存操作都互斥,即使操作不同商品,也需排队等待锁释放,彻底丧失分布式系统的并发优势。③ 释放锁时自动同步清理所有节点锁数据,无需手动协调。

2026-04-26 18:18:29 272

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除