文章
共 61 篇 · 在这座岛上写下的思考
分布式 ID 生成方案对比
订单号为什么不能用自增主键?因为自增 ID 会暴露业务量、容易被遍历。这篇文章对比 UUID、数据库自增、号段模式、雪花算法和 Redis 自增五种方案,重点讲清雪花算法的时钟回拨问题。
分布式事务的边界该怎么划:一个 2400 倍吞吐差距的教训
同一个 SKU、同样的 100 个并发请求、同一套 Seata 配置,只因为全局事务的边界多划了一段,单 SKU 成交量从 20 单/秒掉到 0.0083 单/秒。这篇用实测数据说明全局锁的持有时间意味着什么,以及事务边界该怎么划。
分布式事务与 Seata 的 AT/XA 模式
分布式事务的难点从来不是「怎么提交」,而是「怎么回滚」和「怎么隔离」。这篇对比 XA、AT、TCC、SAGA 四种模式的原理与代价,重点拆解 Seata AT 模式的两阶段流程、undo_log 补偿机制和它无法回避的脏写风险。
配置热更新:改配置不重启服务
把配置写死在代码或打包进镜像是常见的做法,但改一个限流阈值就要重新发布,成本太高。这篇文章讲清配置中心的两种接入方式、动态刷新的原理,以及哪些配置适合热更新。
熔断、降级与雪崩效应
一个非核心的推荐服务变慢,最后拖垮了整个下单链路——雪崩通常不是被「打垮」的,而是被「等垮」的。这篇讲清熔断器的三态转换、Sentinel 与 Hystrix 的差异、舱壁隔离和超时该怎么设。
集群部署解决了什么,又带来了什么
集群是解决单点故障和容量瓶颈的标准手段,但它不是免费的——会话共享、分布式锁、定时任务重复执行、日志排查,这些都是从单机走向集群后必须补上的课。
Refresh Token 买的是体验,不是安全
很多人以为配了 refresh token 就更安全,其实安全窗口完全没变——它买的是「用户不用反复登录」。这篇文章对比两种方案的真实差距,并拆解 refresh token 引入后的三个代价与六个必答问题。
限流的四种算法:固定窗口、滑动窗口、漏桶、令牌桶
限流 1 秒 100 个请求,却在 0.2 秒内放行了 200 个——固定窗口的临界突刺是怎么发生的?这篇从四种算法的原理讲到 Redis + Lua 的分布式实现,把「为什么网关都用令牌桶」这件事说透。
一个迭代的完整开发流程
从需求评审到上线复盘,一个规范的迭代要经过七道关。这篇文章按时间顺序拆解每个阶段的具体动作、产出物,以及最容易出问题的环节。
API 网关到底该做什么
网关不是「反向代理换个名字」。路由和负载均衡只是它的入场券,真正的价值在于把鉴权、限流、日志这些每个服务都要写一遍的横切逻辑收拢到一处。这篇讲清网关的六项职责、断言与过滤器模型,以及它和 Nginx 的分工。
微服务架构:特点、收益与代价
微服务解决的从来不是技术问题,而是"大团队协作"和"独立演进"的问题。这篇文章拆解七个核心特点、它替代单体的真实动机,以及那些被低估的代价。
注册中心的原理:Nacos、Eureka 与 CP/AP 之争
服务之间真正发起调用的那条链路上,注册中心其实完全不参与。理解它「只做地址管理、不做请求转发」的定位,才能想明白推拉结合怎么配合、AP 与 CP 该怎么选,以及它整个集群挂掉之后业务为什么还能继续跑。
JWT 的无状态困境:签发之后为什么收不回来
JWT 的全部优势来自服务端不存状态,代价也正来自这里——签发之后没有任何入口能撤回它。这篇文章用一个「幽灵窗口」实验讲清无状态与可撤销的矛盾,并给出四种撤销方案的取舍。