Kafka 消费者因处理太慢超过 max.poll.interval.ms 后会发生什么?
Kafka 消费者因处理太慢超过 max.poll.interval.ms 后会发生什么? 本文先给出可直接复述的结论,再用最小代码说明Kafka max.poll.interval.ms 消费者离开组的工作方式、判断依据、项目边界和常见误区。
异步编程专题面试题第 2 页,显示第 51–100 题,共找到 292 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
Kafka 消费者因处理太慢超过 max.poll.interval.ms 后会发生什么? 本文先给出可直接复述的结论,再用最小代码说明Kafka max.poll.interval.ms 消费者离开组的工作方式、判断依据、项目边界和常见误区。
Kafka max.poll.records 设置过大为什么会同时拉长单批处理和再均衡风险? 本文先给出可直接复述的结论,再用最小代码说明Kafka max.poll.records max.poll.interval.ms 消费积压的工作方式、判断依据、项目边界和常见误区。
Kafka 消费者应在业务处理前还是处理后提交 offset? 本文先给出可直接复述的结论,再用最小代码说明Kafka offset commit 处理前后 投递语义的工作方式、判断依据、项目边界和常见误区。
Kafka 如何按业务时间点找到可重放的 offset? 本文先给出可直接复述的结论,再用最小代码说明Kafka offsetsForTimes timestamp 重放 offset的工作方式、判断依据、项目边界和常见误区。
Kafka 应用想提高吞吐又保留键级顺序时应如何并行消费? 本文先给出可直接复述的结论,再用最小代码说明Kafka 并行消费 key 顺序的工作方式、判断依据、项目边界和常见误区。
业务数据库与 Kafka 之间为什么常用 outbox 表保证状态变更和事件发布不分裂? 本文先给出可直接复述的结论,再用最小代码说明transactional outbox Kafka 数据库 消息 原子性的工作方式、判断依据、项目边界和常见误区。
Kafka 为什么只能依赖同一分区内的日志顺序实现键级有序? 本文先给出可直接复述的结论,再用最小代码说明Kafka partition key 消息顺序的工作方式、判断依据、项目边界和常见误区。
Kafka 消费者能否通过 pause 和 resume 安全处理耗时业务? 本文先给出可直接复述的结论,再用最小代码说明Kafka consumer pause resume 长耗时处理的工作方式、判断依据、项目边界和常见误区。
Kafka 消费者遇到毒丸消息时为什么不能无限在原分区重试? 本文先给出可直接复述的结论,再用最小代码说明Kafka poison message 消费阻塞 死信的工作方式、判断依据、项目边界和常见误区。
Kafka 生产者 acks=0、acks=1 和 acks=all 分别牺牲什么可靠性? 本文先给出可直接复述的结论,再用最小代码说明Kafka producer acks 0 1 all 可靠性的工作方式、判断依据、项目边界和常见误区。
Kafka 生产者开启重试时如何避免同一分区内的消息乱序? 本文先给出可直接复述的结论,再用最小代码说明Kafka max.in.flight retries 消息乱序的工作方式、判断依据、项目边界和常见误区。
Kafka isolation.level=read_committed 的消费者会如何处理未提交和中止事务? 本文先给出可直接复述的结论,再用最小代码说明Kafka read_committed 事务消息 isolation.level的工作方式、判断依据、项目边界和常见误区。
Kafka 修改主题分区数为什么可能破坏既有业务键的顺序预期? 本文先给出可直接复述的结论,再用最小代码说明Kafka 增加分区 key 顺序 hash的工作方式、判断依据、项目边界和常见误区。
Kafka 消费者发现分区没有已提交 offset 时如何决定从哪里开始读? 本文先给出可直接复述的结论,再用最小代码说明Kafka auto.offset.reset earliest latest none的工作方式、判断依据、项目边界和常见误区。
Kafka 重放前为什么要检查消息保留期与最早可用 offset? 本文先给出可直接复述的结论,再用最小代码说明Kafka retention offset 重放 数据不可恢复的工作方式、判断依据、项目边界和常见误区。
Kafka 指数退避重试为什么可能改变同分区消息的处理顺序? 本文先给出可直接复述的结论,再用最小代码说明Kafka 指数退避 重试 消息顺序的工作方式、判断依据、项目边界和常见误区。
Kafka 消费遇到可恢复错误时应如何重试而不提交失败消息的 offset? 本文先给出可直接复述的结论,再用最小代码说明Kafka 消费重试 offset 可恢复错误的工作方式、判断依据、项目边界和常见误区。
Kafka 用多个 retry topic 实现延迟重试时应按什么维度划分重试级别? 本文先给出可直接复述的结论,再用最小代码说明Kafka retry topic 延迟重试 分级的工作方式、判断依据、项目边界和常见误区。
Kafka 消费者 seek 到指定 offset 重放数据时应先处理哪些一致性问题? 本文先给出可直接复述的结论,再用最小代码说明Kafka seek offset 重放消息的工作方式、判断依据、项目边界和常见误区。
Kafka 流处理为什么要把消费 offset 与输出写入放进同一事务? 本文先给出可直接复述的结论,再用最小代码说明Kafka sendOffsetsToTransaction exactly-once offset的工作方式、判断依据、项目边界和常见误区。
Kafka static group membership 如何减少消费者短暂重启引发的再均衡? 本文先给出可直接复述的结论,再用最小代码说明Kafka static membership group.instance.id rebalance的工作方式、判断依据、项目边界和常见误区。
Kafka 压缩主题中的 tombstone 记录应如何参与异步删除语义? 本文先给出可直接复述的结论,再用最小代码说明Kafka tombstone log compaction 删除事件的工作方式、判断依据、项目边界和常见误区。
Kafka 事务超时后被中止时,应用侧已经产生的外部副作用能否自动回滚? 本文先给出可直接复述的结论,再用最小代码说明Kafka transaction.timeout.ms 外部副作用 回滚的工作方式、判断依据、项目边界和常见误区。
Kafka transactional.id 如何防止同一应用旧实例继续提交事务? 本文先给出可直接复述的结论,再用最小代码说明Kafka transactional.id fencing zombie producer的工作方式、判断依据、项目边界和常见误区。
Kafka 事务生产者如何保证跨多个分区的写入要么全部可见要么全部不可见? 本文先给出可直接复述的结论,再用最小代码说明Kafka transaction producer 跨分区 原子提交的工作方式、判断依据、项目边界和常见误区。
PostgreSQL LISTEN/NOTIFY 的异步通知在事务和连接断线下有什么投递边界? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL LISTEN NOTIFY 事务 通知 投递语义的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 订阅者落后时,发布端为什么可能保留大量 WAL 并造成存储积压? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL 逻辑复制 slot WAL 积压的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 逻辑复制如何用复制位点避免订阅者重复应用变更? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL logical replication LSN 消费位点的工作方式、判断依据、项目边界和常见误区。
PostgreSQL 逻辑复制能保证哪些事务提交顺序,不能把它误认成什么消息顺序? 本文先给出可直接复述的结论,再用最小代码说明PostgreSQL logical replication 事务提交顺序的工作方式、判断依据、项目边界和常见误区。
代码调用 dispatchEvent 时,监听器在方法返回前同步执行,所以同步修改的 DOM 下一行就能读到;Promise 与定时器则不会被等待。可取消事件的返回值能表达同步否决,但不能用 async 监听器来等待弹窗确认或服务端校验。
事件回调中 event.target 与 event.currentTarget 有何区别?在事件委托中应使用哪个? 本文先给出可直接复述的结论,再用最小代码说明event.target 与 currentTarget 区别的工作方式、判断依据、项目边界和常见误区。
Express 4 与 Express 5 对异步路由抛错的处理有什么关键差异? 本文先给出可直接复述的结论,再用最小代码说明Express 5 async 错误 自动捕获 Promise的工作方式、判断依据、项目边界和常见误区。
在 Express 4 中如何用包装函数让异步路由的异常统一进入错误处理中间件? 本文先给出可直接复述的结论,再用最小代码说明Express 4 异步路由 错误包装 asyncHandler的工作方式、判断依据、项目边界和常见误区。
为什么同步 JavaScript 会阻塞解析,async 和 defer 的行为差异是什么? 本文先给出可直接复述的结论,再用最小代码说明script async defer 解析阻塞的工作方式、判断依据、项目边界和常见误区。
GraphQL resolver 中异步错误会如何影响最终响应? 本文先给出可直接复述的结论,再用最小代码说明GraphQL resolver 异步 错误 errors data的工作方式、判断依据、项目边界和常见误区。
页面头部有基础库和依赖它的初始化脚本时,defer 能并行下载并按标签顺序在解析结束后执行;独立统计脚本可用 async,但下载完成就可能打断解析。还需分清 DOMContentLoaded 的等待关系,以及内联脚本、模块脚本的不同规则。
HTTP 的 stale-if-error 指令在源站 500 或宕机时如何提升可用性,与 stale-while-revalidate 触发条件有何不同? 本文先给出可直接复述的结论,再用最小代码说明stale-if-error 源站故障 降级缓存的工作方式、判断依据、项目边界和常见误区。
HTTP Cache-Control: stale-while-revalidate 的工作机制是什么,窗口期过后退化成什么行为? 本文先给出可直接复述的结论,再用最小代码说明stale-while-revalidate 后台异步验证的工作方式、判断依据、项目边界和常见误区。
HTTP 202 Accepted 适合什么场景,客户端如何跟踪异步任务进度? 本文先给出可直接复述的结论,再用最小代码说明HTTP 202 Accepted 异步处理的工作方式、判断依据、项目边界和常见误区。
CompletableFuture 的 thenApply、thenCompose 与 thenCombine 分别解决什么依赖关系? 本文先给出可直接复述的结论,再用最小代码说明CompletableFuture thenApply thenCompose thenCombine 依赖关系的工作方式、判断依据、项目边界和常见误区。
CompletableFuture 不指定 Executor 会有什么隐患,IO 型异步任务该如何选线程池? 本文先给出可直接复述的结论,再用最小代码说明CompletableFuture 线程池 ForkJoinPool commonPool的工作方式、判断依据、项目边界和常见误区。
以浏览器 Event Loop 为范围,逐步分析同步代码、Promise、queueMicrotask 与 setTimeout 的执行顺序,讲清微任务检查点、渲染时机与常见面试误区。
AbortController 怎么取消 fetch 请求?用 signal 把控制器和请求连起来,调用 abort() 后 fetch 以 AbortError 拒绝。附搜索框取消旧请求、超时取消、一个 signal 取消多个请求的写法和常见坑。
async 函数里同步 throw 的错误不会直接抛给调用方,而是变成返回的 Promise 的拒绝原因。讲清为什么外层 try/catch 接不住、await 之后才接得住,以及它和普通函数返回 Promise、setTimeout 回调里抛错的区别。
async 函数不管 return 什么,调用方拿到的都是一个 Promise。讲清 return 普通值、return 另一个 Promise、return thenable 分别会怎样,为什么返回的 Promise 和 return 的不是同一个,以及怎么把值取出来。
forEach 会同步调用完所有回调,并丢掉 async 回调返回的 Promise,所以既不按顺序等,外面也不知道什么时候全做完。讲清原因,给出 for...of 串行、Promise.all 加 map 并发两种替代写法,以及错误接不住的坑。
for 循环里每次 await 都要等上一个请求回来才发下一个,是串行,总耗时是所有请求之和。用可运行的计时示例对比串行和 Promise.all 并发,讲清并发的关键是先发起再等待,以及限流、失败处理和什么时候必须串行。
async/await 底层还是 Promise:async 函数返回 Promise,await 后面的代码相当于放进 then 回调里执行。用可运行示例把同一段逻辑写成 await 版和 then 链版,讲清错误处理、finally 的对应关系,以及两种写法不完全等价的地方。
try/catch 只能接住被 await 的 Promise 拒绝和同步抛错,漏写 await、定时器回调里的错误都接不住。讲清哪些业务错误应该就地处理,哪些程序 bug 应该放给全局兜底,以及 return 和 return await 的区别。
限制并发的任务池里,先发的任务不一定先完成,直接 push 结果顺序就乱了。讲清按下标写回结果数组的做法、为什么下标要在 await 之前取,以及按完成顺序处理、按原顺序分段输出这两种变体和失败时的处理。