Kafka 消费者因处理太慢超过 max.poll.interval.ms 后会发生什么?
围绕“Kafka 消费者因处理太慢超过 max.poll.interval.ms 后会发生什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断时要说明离组、分区重分配和旧实例继续处理可能造成的重复。
异步编程专题面试题第 2 页,显示第 51–100 题,共找到 292 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
围绕“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 或跨发布全局消息顺序。
围绕“dispatchEvent 是同步派发还是异步派发?在监听器中修改 DOM 会立即反映吗”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明调用 dispatchEvent 后所有监听器立即同步执行,且事件循环可以嵌套。
本文用父子列表事件说明 event.target 与 event.currentTarget 的本质区别,解释事件委托中为何用 target 判断来源,并提醒 currentTarget 在异步回调中失效的边界。阅读后可避免常见误判,正确编写委托代码。
围绕“Express 4 与 Express 5 对异步路由抛错的处理有什么关键差异”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 Express 4 需要 try/catch 或包装器手动 next(err),Express 5 自动转发 rejected。
围绕“在 Express 4 中如何用包装函数让异步路由的异常统一进入错误处理中间件”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出高阶函数包裹 handler 并 .catch(next) 的实现思路及其局限(中间件链内同步抛错仍需注意),不讲 Expres。
围绕“为什么同步 JavaScript 会阻塞解析,async 和 defer 的行为差异是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要对比默认、async、defer 的下载与执行时机及适用场景。
围绕“GraphQL resolver 中异步错误会如何影响最终响应”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 Promise 拒绝如何变成 errors 数组且 data 部分返回。
围绕“script 的 defer 与 async 属性在加载和执行顺序上有何不同?何时使用哪个”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明两者绕过解析阻塞的方式,async 加载完即执行但乱序,defer 在文档解析后按序执行。
围绕“HTTP 的 stale-if-error 指令在源站 500 或宕机时如何提升可用性,与 stale-while-”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确错误时容错用旧副本与异步刷新两种触发条件的区分。
围绕“HTTP Cache-Control: stale-while-revalidate 的工作机制是什么,窗口期过后退”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须讲清窗口内先用旧副本并后台异步更新的时序。
围绕“HTTP 202 Accepted 适合什么场景,客户端如何跟踪异步任务进度”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明已受理未完成的语义及轮询/状态资源设计。
围绕“CompletableFuture 的 thenApply、thenCompose 与 thenCombine 分别”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断同步转换、扁平化异步与两结果合并三种组合模式的边界。
围绕“CompletableFuture 不指定 Executor 会有什么隐患,IO 型异步任务该如何选线程池”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖判断默认 commonPool 对阻塞任务的饥饿风险及显式 Executor 的必要性。
以浏览器 Event Loop 为范围,逐步分析同步代码、Promise、queueMicrotask 与 setTimeout 的执行顺序,讲清微任务检查点、渲染时机与常见面试误区。
围绕“AbortController 是如何与 fetch 等异步 API 协作以支持取消的”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明通过 signal 传入 fetch,并调用 abort 来中断。
围绕“async 函数中的同步抛出异常会怎样传播”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明同步异常使 async 函数返回 rejected Promise。
围绕“async 函数中 return 一个值时,外部拿到的是值还是 Promise”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 async 函数总是返回一个已用该值解析的 Promise。
围绕“为什么在 forEach 中使用 async/await 不能保证异步任务按顺序完成?应该用什么替代”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释 forEach 不等待异步,提供 for...of 或常规循环的替代。
围绕“在 for 循环中对多个异步任务使用 await,是串行执行吗?如何改为并发”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明每个 await 会阻塞循环体,使用 Promise.all 改为并发。
围绕“为什么说 async/await 是 Promise 链的语法糖?请演示对应的等价格式”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出简单例子对应转换,并说明 await 之后的代码等价于 then。
围绕“async/await 中哪类错误应使用 try/catch 捕获,哪类不适合?请举例说明”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分可预测的业务错误与不可恢复的错误。
围绕“并发池中任务完成的结果顺序如何保证与发起顺序一致?有哪些实现方式”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明使用索引或预填充数组保持顺序。