Kafka 消费者组总 lag 不高但个别分区严重积压说明什么问题?
围绕“Kafka 消费者组总 lag 不高但个别分区严重积压说明什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按分区检查 key 倾斜、分配不均或单分区处理阻塞,不把问题归因于整体消费者数量不足。
程序员面试题库第 30 页,收录第 1451–1500 题,共 5000 道完整解析,覆盖前端、JavaScript、React、Vue、Node.js、AI Agent、网络、数据库与系统设计。
按稳定语义路径排序
围绕“Kafka 消费者组总 lag 不高但个别分区严重积压说明什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按分区检查 key 倾斜、分配不均或单分区处理阻塞,不把问题归因于整体消费者数量不足。
围绕“Kafka 消费 lag 持续上升时如何区分生产突增与消费者处理瓶颈”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须比较入口速率、消费速率和单条处理耗时后再定位瓶颈。
围绕“Kafka compacted topic 重放时为什么不能期望看到每个历史更新”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明同一 key 旧记录可能被压缩删除、重放得到的是保留的最新值或删除标记。
围绕“Kafka 消费者因处理太慢超过 max.poll.interval.ms 后会发生什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断时要说明离组、分区重分配和旧实例继续处理可能造成的重复。
围绕“Kafka max.poll.records 设置过大为什么会同时拉长单批处理和再均衡风险”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须比较批大小、poll 间隔和下游耗时的关系,不把批处理配置与分区数量混淆。
本文从投递语义角度分析 Kafka offset 提交时机。先提交再处理导致崩溃时消息丢失,先处理后提交产生重复。通过场景说明选择依据,并指出不适用事务和幂等场景。
围绕“Kafka 如何按业务时间点找到可重放的 offset”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明按时间戳返回的是首个不早于该时间的位点及其精度边界。
围绕“Kafka 应用想提高吞吐又保留键级顺序时应如何并行消费”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按业务键把并行度约束在互不相关的键之间。
围绕“业务数据库与 Kafka 之间为什么常用 outbox 表保证状态变更和事件发布不分裂”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明本地事务先落 outbox、再异步投递如何规避双写失败窗口。
围绕“Kafka 为什么只能依赖同一分区内的日志顺序实现键级有序”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明相同 key 路由到同一分区及跨分区无全局顺序。
围绕“Kafka 消费者能否通过 pause 和 resume 安全处理耗时业务”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明暂停拉取不等于维持组成员资格,并判断仍需控制 poll 间隔或拆分任务。
围绕“Kafka 消费者遇到毒丸消息时为什么不能无限在原分区重试”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须识别不可恢复消息对后续消息、消费滞后和资源占用的影响。
解析Kafka生产者在acks=0、1、all下的可靠性差异,包括失败可见性、延迟和副本持久性。详细说明每种级别的消息丢失场景及min.insync.replicas的作用,指导配置选择。
围绕“Kafka 生产者开启重试时如何避免同一分区内的消息乱序”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须结合 max.in.flight.requests.per.connection 与幂等性约束判断并发请求重排。
围绕“Kafka isolation.level=read_committed 的消费者会如何处理未提交和中止事务”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明只读已提交记录、跳过中止记录及对消费延迟的影响。
围绕“Kafka 修改主题分区数为什么可能破坏既有业务键的顺序预期”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明哈希取模路由变化导致同一 key 的旧消息和新消息落在不同分区。
围绕“Kafka 消费者发现分区没有已提交 offset 时如何决定从哪里开始读”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分 earliest、latest 与 none 对历史数据、实时数据和报错行为的影响。
围绕“Kafka 重放前为什么要检查消息保留期与最早可用 offset”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断时要说明目标位点是否已被日志保留策略删除。
围绕“Kafka 指数退避重试为什么可能改变同分区消息的处理顺序”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断时要说明暂停分区、跳过重试和并行重试对顺序的不同影响。
围绕“Kafka 消费遇到可恢复错误时应如何重试而不提交失败消息的 offset”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明保留位点、控制重试次数和避免快进造成消息跳过。
围绕“Kafka 用多个 retry topic 实现延迟重试时应按什么维度划分重试级别”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须比较按延迟等级建 topic 与按错误类型建 topic 的路由效果。
围绕“Kafka 消费者 seek 到指定 offset 重放数据时应先处理哪些一致性问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 seek 与提交位点、下游状态和重放范围的协调。
围绕“Kafka 流处理为什么要把消费 offset 与输出写入放进同一事务”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明输入位点和输出结果原子提交如何形成 Kafka 内端到端语义。
围绕“Kafka static group membership 如何减少消费者短暂重启引发的再均衡”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明固定实例身份与会话超时的配合及真正宕机时仍会转移分区。
围绕“Kafka 压缩主题中的 tombstone 记录应如何参与异步删除语义”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 null value 先向消费者表达删除、之后在满足保留条件时物理清除。
围绕“Kafka 事务超时后被中止时,应用侧已经产生的外部副作用能否自动回滚”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须明确 Kafka 事务只回滚 Kafka 记录和 offset,不撤销数据库写入或远程调用。
围绕“Kafka transactional.id 如何防止同一应用旧实例继续提交事务”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明稳定身份和 epoch fencing 如何隔离僵尸生产者。
围绕“Kafka 事务生产者如何保证跨多个分区的写入要么全部可见要么全部不可见”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明事务协调与提交标记提供的原子边界。
围绕“PostgreSQL LISTEN/NOTIFY 的异步通知在事务和连接断线下有什么投递边界”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明通知在提交后才投递、会话断线期间不会持久排队,不把它当作可靠消息队列。
围绕“PostgreSQL 订阅者落后时,发布端为什么可能保留大量 WAL 并造成存储积压”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须联系复制槽保留 WAL 与订阅滞后来诊断磁盘增长。
围绕“PostgreSQL 逻辑复制如何用复制位点避免订阅者重复应用变更”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 WAL 位点记录复制进度及确认边界。
围绕“PostgreSQL 逻辑复制能保证哪些事务提交顺序,不能把它误认成什么消息顺序”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明按事务提交顺序应用变更而非按单条 SQL 或跨发布全局消息顺序。
围绕“Dockerfile 中 ADD 和 COPY 的区别是什么,为什么官方推荐优先用 COPY”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要讲清清 ADD 的 URL 拉取与自动解压特性及其可预期性问题。
围绕“为什么基于 Alpine 的镜像在 DNS 解析或本地化上可能出现与 glibc 镜像不同的行为”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖聚焦 musl libc 行为差异导致的隐性 bug 与排查思路。
围绕“Docker 构建参数 ARG 与环境变量 ENV 在何时可见、如何影响镜像”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖区分构建期变量与运行期变量的持久化差异及误用风险。
围绕“docker buildx bake 如何用一份声明式文件编排多个相关镜像的构建”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 bake 的 HCL/JSON 目标组、矩阵构建与共享缓存价值。
围绕“Dockerfile 中 ARG 的作用域规则是什么,为什么 FROM 之前的 ARG 要重新声明”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要讲清清全局 ARG 与阶段内 ARG 的可见性及对缓存键的影响。
本文解释 Docker 构建缓存按层匹配的具体逻辑:缓存键组成、复用条件与失效传播链,并以依赖清单与源码分离的 COPY 顺序为例说明实践,同时指出忽略 .dockerignore 或合并 COPY 带来的缓存失效扩大及代价。
围绕“Docker 构建上下文是什么,为什么上下文过大会让构建变慢”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖解释客户端打包上下文发送到构建器的机制及体积影响。
围绕“BuildKit 如何自动并行执行互不依赖的 Dockerfile 构建步骤”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖解释 LLB 依赖图与并行调度,以及多阶段下并行带来的收益。
围绕“docker buildx create 创建远程或容器化 builder 实例解决什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要比较 docker、docker-container、kubernetes 驱动的能力与隔离性。
围绕“Docker 构建的 registry、local、gha 等缓存后端各有什么取舍”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要比较持久化位置、并发与模式(min/max)差异,帮助选型。
本文解释Dockerfile中COPY依赖清单先于源码以利用层缓存的具体机制,包括指令排序、缓存命中条件和失败边界,并给出可操作判断。适合理解镜像构建优化。
围绕“BuildKit 的 RUN --mount=type=cache 如何解决包管理器缓存反复下载的问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明缓存挂载不进入镜像层但跨构建复用的机制与挂载点选择。
围绕“如何用 --cache-to 和 --cache-from 在 CI 之间共享 Docker 构建缓存”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 registry 与 local 缓存导出模式及其对 CI 加速的意义。
本文解释 Dockerfile 中 COPY --from 引用外部镜像与引用构建阶段的具体区别,包括缓存行为、可重复性与使用场景。通过机制分析和具体工程条件说明如何选择,并指出常见误区。
围绕“Docker 中的 dangling(<none>)镜像如何产生,如何安全清理”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖解释重新打标签导致旧层失去引用及 prune 的回收边界。
围绕“Docker 构建中途失败时,如何利用中间层镜像进入现场排查问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明从报错前一层镜像运行交互 shell 复现指令的诊断流程。
围绕“如何分析一个已有镜像每层的大小与内容,定位体积浪费在哪一层”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖给出 docker history/inspect 与逐层检查的诊断方法。
本文解析 Dockerfile 中 RUN、COPY、ADD 产生文件层,其他指令仅改动元数据;说明这些层如何影响镜像构建缓存与体积,并通过典型场景给出合并 RUN 与保持缓存的取舍,以及常见误区。