已采纳
回答正文
回复
讨论正文
该问题的正文与回答。
【背景】
订单结算服务,Kafka 3.5(3 broker,ISR=3),topic settle-bill 12 分区,消费组 6 实例,max.poll.records=200。单条消费逻辑是「校验 → 写 MySQL 8.0 结算单(本地事务,2 张表:bill + bill_item)→ 提交 offset」。单条 P99 约 45ms,一批 200 条约 9s,lag 平时 0~30。投递语义是 at-least-once,消费端靠「结算单号 out_biz_no 唯一键」做幂等去重。
【现象 / 卡点】 真正卡住我的是「本地事务提交」与「Kafka offset 提交」之间的一致性窗口:
【已尝试的排查与结果】
consumed_offset(partition, offset, status)),但没想清楚崩溃恢复时怎么对账、status 怎么流转、和 Kafka 端 offset 如何最终收敛。【期望得到的答案形态】 想请教一个能落地的方案,最好带: