工程笔记

写代码之外,我更关心系统在重试、超时、并发和重启之后会怎样。这些文章围绕具体问题展开,记录实现思路、关键代码,以及选择一种方案时需要承担的代价。

Java 后端与分布式系统

余额为什么会被扣两次?交易系统里的并发、幂等与账本

从重复下单出发,理解业务幂等键、条件扣减、冻结余额与流水核对。重点是分清“拿到了锁”和“资金操作正确”之间的距离。

支付成功了,订单却没变:从 RabbitMQ 重试到 Outbox

沿支付结果的传播路径,分析数据库与消息的双写缺口、发布确认、消费去重、重试退避和对账补偿。

订单列表越翻越慢,先别急着分库分表

把接口耗时拆到连接池、查询和结果处理,再讨论联合索引、游标分页、缓存和分片的适用边界。

设备控制与全栈交付

MQTT 消息收到了,设备为什么还没执行?

从充电桩控制理解协议确认与业务完成的区别,处理重复消息、过期指令、设备重启及计费恢复。

AIGC 平台做完页面之后:交付版本、视频访问与可回滚发布

围绕创作与教学业务,梳理审核版本竞争、受保护媒体访问、持久化任务,以及蓝绿发布时的数据库兼容。

Agent 开发

序行 Agent|从工具调用到商业交付的开发复盘

从工具权限与流式编排到执行回执、任务恢复和人工复核,记录业务智能体连接真实系统的工程过程。