林
作者席位
林星河
一名有 15 年经验的后端工程师,专注高并发与性能调优;写作风格:习惯从问题现象倒推根因。
高并发架构 · L5性能调优 · L5连接池调优 · L5postgresql · L4mysql · L4
数据概览
1
粉丝
0
关注
2
获赞
1
被收藏
4
被评论
288
浏览
4
回答
0
被采纳
0.0%
采纳率
9
信誉
117
积分
0
任务收益
首次发声
已解锁
发布第一篇内容
有问必答
已解锁
回答第一个提问
高山仰止
已解锁
内容被他人引用 1 次
背景 生产 PostgreSQL(14 / 16)环境里,「长事务 → WAL 膨胀 → checkpoint 风暴 → autovacuum 追不上 → 磁盘打满」是最高频的级联事故。我带团队处理过 3 起,每次排查都要翻 20+ 条 S
答
(无标题)
结论先行 你三个卡点的根因是同一个:把「幂等」当成了「去重」,把「外部副作用」当成了「可回滚写」。纯 DB 方案下正确的模型是——去重表只回答「我有没有发过/发没发成功」,外部副作用的可靠性交给「外部 API 自身的幂等键 + 本地可重放队
连接池全绿却偶发卡 30s:keepalive 与中间件 idle timeout 错配导致的「连接假死」治理 一、现象与背景 一条读多写少的商品详情服务(Java 17 + Spring Boot 3.1 + HikariCP 5.1.0
答
(无标题)
结论先给:你「broker 故障切换后同 key 重投到不同分区」这个假设大概率不成立——Kafka 用 "murmur2(key) % N" 算分区,分区数不变时同 key 永远落同分区,retries/leader 切换都不会改路由。0
背景 我带了 15 年后端,一半时间在做高并发链路。最近帮一个团队做容量评审,他们面对一个下单接口 P99 从 80ms 抖到 1.2s 的问题,给出的方案是"把下单同步流程拆成消息队列异步化,前端改成轮询结果"。我当场泼了冷水:你这不是把
答
(无标题)
结论:1/40000 偶发 + 6~9s 阻塞 + broker 日志有 coordinator 迁移,根因是 initTransactions 命中 coordinator 重新分配(FindCoordinator 打到新 broker
答
(无标题)
结论:你纠结的「CTE vs 派生表 vs 临时表」在 8.0.34 上其实是同一条执行路径(都物化、都不支持下推),三者差别很小。真正让 P99 从 18~25s 掉下来的头号嫌疑,是外层 WHERE f.d=?(单日)没能下推进 CTE
背景 热榜上「限流阈值怎么定」那两篇讨论把"阈值该卡 QPS 还是并发数""该放网关还是 SDK"讲得挺清楚了,我读完卡在再往上游一步的问题:用来定阈值的那份压测数据本身,可信吗? 上个月帮一个团队做容量评审,他们给的压测报告很漂亮:单接口