支付回调被重推三次:幂等表、状态机与退避重试怎么配合
支付回调天然会重复。本文从一次重复发货的线上故障切入,讲清楚幂等键怎么选、为什么只能靠数据库唯一索引兜底、状态机如何接住乱序回调、重试该放在哪里,以及几个真正会出事的地方。附可运行的 Spring Boot + MySQL 代码。
Blog
格达软件工程师的实战经验、技术选型与行业观察
支付回调天然会重复。本文从一次重复发货的线上故障切入,讲清楚幂等键怎么选、为什么只能靠数据库唯一索引兜底、状态机如何接住乱序回调、重试该放在哪里,以及几个真正会出事的地方。附可运行的 Spring Boot + MySQL 代码。
两个事务在 RR 隔离级别下先查后插,计数没超却多发了券;更怪的是 UPDATE 影响行数为 1,同一事务里 SELECT 却查不到这行。这篇文章用可复现的 SQL 会话讲清快照读与当前读的差异、间隙锁的边界,以及唯一索引和原子更新怎么兜底。
面向跑了几年的 Java 老项目:在不改调用方的前提下,用接缝把 new、静态配置和系统时钟扒出来,配上可复制的 Mockito + JUnit5 示例、JaCoCo 增量覆盖率门禁,以及静态初始化、误连生产配置、H2 方言这三类实测踩过的坑。
订单表到了八千万行就必须拆?先看一条慢 SQL 再决定。这篇讲清分片键怎么选、基因法让订单号自带路由、跨分片分页与 count 的正确写法,以及事务、扩容、运维要付的真实代价。
自增 ID 直接 Base62 会被顺序遍历,哈希取位又会碰撞。本文给出号段发号 + Feistel 置换生成 6 位不可枚举短码的完整 Go 实现,并讲清 301 缓存、缓存穿透、LAST_INSERT_ID 连接级坑和建表时的 DDL 报错。
第三方支付回调会在 24 小时内重试 9 次,客户端超时也会重发。这篇用一个真实对账事故,讲清幂等键怎么选、唯一索引和 Redis 各挡哪一层、状态机为什么是最后防线,以及幂等记录该留多久。
云服务器上线前的安全基线是抵御入侵的第一道防线。本文从账号权限、网络访问、应用数据、日志巡检四个层面给出可落地的配置清单,并结合 APP、小程序、PC 软件交付与服务器维护场景,说明常见踩坑点与整改顺序。
从资产梳理、基线加固、备份恢复、监控告警到网络与应用层防护,结合格达软件 APP、小程序、PC 软件与服务器维护业务,给出可落地的企业服务器运维与安全加固实践清单。
本文解析uniapp+Node.js多端商城的技术架构、核心功能与开发成本,结合格达软件的实际定制经验,给出预算参考与避坑建议,帮助企业决策者合理规划商城项目。
开发者和开源作者现在有许多提供免费层级的服务,但要找到所有这些服务并做出明智的决定需要花费时间。这是一个包含软件(SaaS、PaaS、IaaS等)及其他提供免费开发者层级的服务的列表。 这份清单的范围仅限于基础设施开发者(系统管理员、DevOps实践者等)可能觉得有用的内容。我们喜爱所有外部的免费服务,但最好还是保持主题相关。有时候这条界限比较模糊,因此本清单有个人观点;如果我不接受你的贡献,请不要感到被冒犯。