
分布式事务:从原理、开源实现到性能取舍
以“下单、库存、支付”为主线,理解分布式事务解决什么问题、常见方案如何工作,以及如何通过开源组件落地、分析性能和验证故障恢复。 本文关注:遇到一个跨服务业务流程时,能够说清事务边界、失败后的结果、恢复责任和方案取舍。
Latest

以“下单、库存、支付”为主线,理解分布式事务解决什么问题、常见方案如何工作,以及如何通过开源组件落地、分析性能和验证故障恢复。 本文关注:遇到一个跨服务业务流程时,能够说清事务边界、失败后的结果、恢复责任和方案取舍。
假设数据库里有一条 id=42, balance=100 的记录,现在要把余额改成 120。数据库该怎么保存这个变化? 一种做法是找到这条记录所在的页,把值改掉。另一种做法是先记下一条新记录:id=42 的余额现在是 120,等以后再整理新旧数据。
应用日志里突然出现这样的错误: Error 1461: Can't create more than max_prepared_stmt_count statements (current value: 16382) 看到参数名,第一反应通常是把它调大。但在修改之前,最好先弄清楚:到底是哪台数据库触及了上限?是业务规模增长,还是预编译语句一直没有释放?

之前把 Redis 从 4 升级到 6,遇到过一个有点反直觉的问题。 项目使用的客户端是 go-redis v6.15.5。Redis 原地升级后,应用没有重启,业务运行正常。但应用重启之后,低流量时看起来没问题,流量上到约 40 QPS,就开始出现超时。
Tracks
Tags