🌱

243

一杯咖啡的时间,聊聊技术与成长

连载中 5/20

RedLock 之争:Martin 与 antirez 的隔空交锋

五台独立 Redis、多数派加锁、失败全解锁——RedLock 看起来无懈可击。分布式系统权威 Martin 发文质疑:GC 停顿和时钟跳变面前,RedLock 的安全性站不住。antirez 下场应战。这场论战给所有用锁的人留下了两句话:锁分效率与正确性,正确性要靠令牌兜底。

#分布式锁#RedLock#Martin Kleppmann#antirez#fencing token
2026-06-27 · 4347 阅读 · 0 评论 · 0 赞
连载中 4/20

Redisson:可重入锁的完整实现

方法 A 拿了锁,内部调用的方法 B 还要同一把锁——不会重入的锁会用自锁的方式杀死自己。Redisson 用一个 Hash 结构把重入计数、看门狗续期、安全释放全部封装,三行代码背后是一整套工程化答案。

#分布式锁#Redisson#可重入锁#看门狗#Hash结构
2026-06-26 · 2561 阅读 · 0 评论 · 0 赞
连载中 3/20

锁误删与续期:看门狗从哪来

过期时间设短了业务没跑完锁先没了,设长了持有人真崩了全员干等。两头堵的困局里,看门狗给出了第三条路:锁的生死不靠猜,靠持有人活着的事实来续。一段 Lua 加一个后台线程,把赌局变成雇佣关系。

#分布式锁#看门狗#续期#GC停顿#Lua脚本
2026-06-25 · 6074 阅读 · 0 评论 · 0 赞
连载中 2/20

从 SETNX 到 SET NX PX:一条命令的二十年进化

用 Redis 加锁,第一反应是 SETNX。但「加锁」和「设过期」分两步会崩出原子性问题,「删除」不看身份会误伤后来者,校验加删除又差一个原子——三代写法排着队踩坑,最后收敛成一条命令加一段 Lua。

#分布式锁#SETNX#SET NX PX#Lua脚本#误删锁
2026-06-25 · 4098 阅读 · 0 评论 · 0 赞
连载中 1/20

同一个账户,两家门店同时扣款:JVM 锁管不了的事

503 咖啡馆开到第三家店,储值卡同一天在两店同时扣款,账对不上了。synchronized 在多实例面前形同虚设,数据库行锁也没拦住读改写的竞态——把互斥从 JVM 内提升到全进程共享,是本系列第一课。

#分布式锁#JVM锁#丢失更新#互斥#503咖啡馆
2026-06-24 · 1392 阅读 · 0 评论 · 0 赞
连载中 18/18

收官复盘:一张作战地图串起整个系列

十八篇走完,从订单与库存的裂缝讲到对账的兜底。症状速查表、三条铁律、四步选型、十项上线检查——分布式事务的全部家当收进一张作战地图,下次账对不上,先翻这张图。

#分布式事务#收官#复盘#选型#检查清单
2026-06-24 · 2377 阅读 · 0 评论 · 0 赞
连载中 17/18

踩坑实录:七个生产事故清单

注销消息还没消费,注册消息先到了;缓存删失败,旧余额挂了一天;异步线程池一开,全局事务 ID 凭空消失——七个前文没写透的生产事故:现象、根因、解法,条条都是纪律。

#分布式事务#踩坑#消息乱序#缓存一致性#全局事务
2026-06-23 · 4895 阅读 · 0 评论 · 0 赞
连载中 16/18

对账系统:最终一致的最后防线

防御做得再全,季度审计照样翻出差异。对账是分布式事务的最后一道防线:不信任任何一方自报,用独立数据源做全量比对——长款、短款、状态不符逐笔揪出,自动平账、人工差错池、挂账三路分流。

#分布式事务#对账#长款#短款#差错处理
2026-06-22 · 6549 阅读 · 0 评论 · 0 赞
连载中 15/18

事务边界:@Transactional 的七宗罪

注解写了事务却没生效:方法不 public、同类自调用、异常被吞、rollbackFor 没配——四大失效姿势。事务里发消息、调远程、跑批处理——三大拖垮姿势。边界要小而纯粹:只包数据库操作,其余一律移出去。

#分布式事务#Spring事务#事务边界#Transactional#传播行为
2026-06-22 · 6549 阅读 · 0 评论 · 0 赞