<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>幂等 - 标签 - ZeroCoding</title><link>https://zerocoding.online/tags/%E5%B9%82%E7%AD%89/</link><description>ZeroCoding</description><generator>Hugo 0.165.0 &amp; FixIt v1.0.0-alpha.2-mtmrzvot</generator><language>zh-CN</language><managingEditor>hi@zerocoding.online (ZeroCoding)</managingEditor><webMaster>hi@zerocoding.online (ZeroCoding)</webMaster><lastBuildDate>Thu, 30 Jul 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://zerocoding.online/tags/%E5%B9%82%E7%AD%89/index.xml" rel="self" type="application/rss+xml"/><item><title>分布式系统中的幂等性设计</title><link>https://zerocoding.online/posts/idempotency-design/</link><pubDate>Thu, 30 Jul 2026 00:00:00 +0800</pubDate><author>hi@zerocoding.online (ZeroCoding)</author><guid>https://zerocoding.online/posts/idempotency-design/</guid><category domain="https://zerocoding.online/categories/%E5%90%8E%E7%AB%AF/">后端</category><description>&lt;p&gt;幂等性是分布式系统的老问题，却是高并发场景下最容易踩坑的地方。核心诉求只有一个：&lt;strong&gt;同一个操作执行多次，结果和只执行一次一致&lt;/strong&gt;。&lt;/p&gt;&#10;&lt;h2 class="heading-element" id="常见落地手段"&gt;&lt;span&gt;常见落地手段&lt;/span&gt;&#10; &lt;a href="#%e5%b8%b8%e8%a7%81%e8%90%bd%e5%9c%b0%e6%89%8b%e6%ae%b5" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;数据库唯一约束&lt;/strong&gt;：最可靠，通过唯一索引天然去重，适合「创建」类操作。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;状态机&lt;/strong&gt;：把业务状态流转设计成幂等的，重复请求自然被挡在状态判断之外。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Token / 去重表&lt;/strong&gt;：请求先拿 Token，消费一次即失效，适合「提交」类操作。&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;分布式锁&lt;/strong&gt;：保证同一时刻只有一个请求在处理，但要处理好锁的粒度与超时。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 class="heading-element" id="取舍"&gt;&lt;span&gt;取舍&lt;/span&gt;&#10; &lt;a href="#%e5%8f%96%e8%88%8d" class="heading-mark"&gt;&lt;svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"&gt;&lt;path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&#10;&lt;/h2&gt;&lt;p&gt;没有银弹。唯一约束最稳但局限性强，锁最灵活但引入复杂度。实际项目里往往是组合使用，按业务语义选择最合适的那一层。&lt;/p&gt;</description></item></channel></rss>