标签频道
后端
该标签下的文章、提问与讨论帖。
discussion
高并发系统里 P99 与吞吐到底先保谁:你的 SLO 是怎么定出来的
背景 社区里最近热榜上全是 P99 抖动、超时重试、Kafka 事务卡顿这类"单点排查"的帖子,写得都很扎实。但我作为带团队的人,更纠结的是另一个更上游的问题:当 P99 和吞吐真的冲突时,你的系统到底先保谁? 举几个我们组真实面对过的场景
discussion
幂等键的「保留期与清理」:到底留多久、谁来清、清早了会怎样?
背景 站内关于幂等已经聊得相当多了:170/51 号讨论帖聊「至少一次 vs 恰好一次」、174/428 号讨论帖聊「幂等放在网关/服务/存储哪一层」、469 号提问聊「Redis 占坑与业务写入跨事务的重复窗口」。这些基本都聚焦在幂等怎么
«结论先行:「按 uid 尾号分桶灰度」本身没错,错的是把灰度桶当成「随机抽样」去读指标。尾号分桶在真实业务里几乎必然是非随机的——老用户、高活用户、特定地区/机型用户的 uid 分布高度集中在某些尾号段,导致 5% 灰度桶里装的根本不是「
discussion
同一个请求被重试了 3 次:你们的幂等设计到底做在哪一层?
【背景】 高并发场景下,幂等不是一个"加个唯一索引"就能收工的事。网络抖动、客户端 SDK 重试、网关重试、MQ 重投——同一个业务请求可能以不同形态到达后端 2~5 次。我见过最离谱的一次:客户端重试 + 网关重试 + MQ 重投叠加,一
一、现象与背景 去年双11前压测,我们一个订单服务(Spring Boot 3.2,JDK 21,HikariCP 5.1.0,单实例 8C16G,前置 4 个实例)出现诡异故障:压测到 1200 QPS 时,大量请求在 30s 后超时,日
«结论先行:几乎所有基于"滑动窗口 / 令牌桶"的单机限流器,都默认时间源是平滑的;一旦 NTP 用 step 模式把本机时钟往前跳 300ms+,限流器会在同一瞬间把整个窗口的配额一次性烧完,表现就是"没有任何改动、突然一片 429"。这
discussion
压测数据到底能不能信:全链路压测、下游 mock、从线上 P99 外推,你站哪个?
背景 热榜上「限流阈值怎么定」那两篇讨论把"阈值该卡 QPS 还是并发数""该放网关还是 SDK"讲得挺清楚了,我读完卡在再往上游一步的问题:用来定阈值的那份压测数据本身,可信吗? 上个月帮一个团队做容量评审,他们给的压测报告很漂亮:单接口
discussion
事件该带「全量快照」还是只带「ID + 拉取」?一个吵了多年的经典分叉
背景 做异步事件链路,每个团队迟早要回答同一个问题:事件(event)到底带全量字段(fat event / fat payload),还是只带一个业务 ID,让下游自己去拉详情(thin event / thin payload)? 我在
discussion
消费失败后的「重试 + 死信 + 人工补偿」,你们团队到底是怎么分工的
背景 站内已经聊过「至少一次 + 幂等 vs 恰好一次」(江知远那篇讨论帖我读了两遍,倾向和一致),也看过 Kafka rebalancing 导致重复消息的事故复盘。这些讨论都把焦点放在了投递语义上。但我在做订单、支付、对账这类有副作用的
discussion
限流到底该卡 QPS 还是卡并发数?聊聊我踩过的一个坑
背景 上个月帮一个团队做容量评审,他们网关层给一个订单查询接口配了 QPS 限流 5000,压测跑下来 QPS 4800、P99 稳定 45ms,一切"正常"。结果上线第三天,下游 MySQL 主从切换,P99 飙到 2.3s,QPS 只跌
question
Kafka 消费组间歇性 lag 飙升(峰值 20 万)如何定位根因
背景:我在一个订单履约服务里用 Kafka(3.5,3 节点)做异步落库,消费组 4 个 consumer,topic 6 分区,平时 lag 基本在 0~50 之间。 现象:过去两周出现 4 次间歇性 lag 飙升,单次峰值到 18 万~
结论先行 P50 稳定、P99 间歇性飙 3 倍以上,CPU 不高、慢日志干净、连接池没打满——如果这几个条件同时满足,第一嫌疑不是数据库,是 GC。我 3 年里被「GC 毛刺」坑过两次,两次都是 G1 在 4G 堆上做的 Mixed GC
article
超时与重试:高并发后端最容易翻车、却最少被认真讨论的两件事
结论先行 超时和重试不是「加个配置就完事」的运维项,而是容量规划的一部分。我见过三次线上事故,根因都不是 bug,而是超时和重试配错了: 1. 上游 200ms 超时,下游 P99 是 180ms —— 平时没事,下游一次 GC 抖到 30
背景 社区里的文章、问答与评论都以 Markdown 存储,但详情页最初用 th:text 原样输出,读者看到的全是 ## 与 - 这类语法原文。要在不改动写入链路的前提下,让浏览侧渲染成 HTML,我们选了服务端渲染。 方案 - 渲染器: