正在打开页面…

面试题:后端

后端工程师岗位相关的接口设计、服务端基础、并发、存储和稳定性面试准备。

进程、线程、协程和事件循环分别适合什么服务端并发模型?

进程提供隔离,线程共享进程内存,协程以较低切换成本管理大量等待,事件循环适合非阻塞 I/O;选择取决于隔离、CPU、I/O 和运行时能力。

并发与分布式协同后端中频题

CPU 密集和 I/O 密集任务应如何选择并发度,为什么不能只按 CPU 核数设置?

CPU 密集任务的并发度受核心数和计算效率约束,I/O 密集任务还要受连接、下游吞吐、内存和延迟目标约束,不能用一个固定公式覆盖所有服务。

并发与分布式协同后端中频题

同步、异步、阻塞、非阻塞四个概念分别描述什么,为什么常被混用?

同步和异步描述结果通知方式,阻塞和非阻塞描述调用是否让当前执行单元等待;它们是两个维度,不是同义词。

并发与分布式协同后端中频题

在请求处理线程或事件循环中执行阻塞任务会造成什么排队和尾延迟问题?

阻塞调用会占住请求线程或事件循环,使其他请求无法获得执行机会,表现为吞吐下降、队列增长和 P99 先于平均值恶化。

并发与分布式协同后端中频题

线程池或任务执行器的核心并发、队列、最大并发和拒绝策略如何共同决定过载行为?

执行器要同时定义能并行多少、能排队多少、突发时最多扩到多少以及无法接收时如何失败;四者共同决定延迟和保护方式。

并发与分布式协同后端中频题

有界队列和无界队列分别会怎样把突发流量转化为拒绝、延迟或内存故障?

有界队列把容量边界显式化为等待和拒绝,无界队列把突发转化为不断增长的内存和延迟风险;生产系统通常要明确边界。

并发与分布式协同后端中频题

为什么 Web 请求、批处理、消息消费和定时任务通常需要隔离的执行资源?

不同负载的延迟目标、失败方式和资源形态不同;隔离执行资源能防止后台任务挤占在线请求和消息确认能力。

并发与分布式协同后端中频题

连接池、线程池和协程池的资源模型有什么不同,为什么不能只看“池大小”?

连接池管理外部连接,线程池管理执行槽,协程池或信号量管理逻辑并发;它们的等待、占用和释放条件不同。

并发与分布式协同后端中频题

一个异步任务从提交到执行、超时、取消和完成,状态转换应怎样定义?

异步任务要把受理、排队、执行、成功、失败和取消定义为可查询状态,并区分尚未开始的取消与已经产生副作用的停止。

并发与分布式协同后端中频题

超时、取消、中断和重试分别表示什么,怎样避免任务在调用方超时后继续制造副作用?

超时是截止时间已到,取消是协作者发出的停止信号,中断是执行机制对工作的打断,重试是重新尝试;它们必须共同受幂等和副作用边界约束。

并发与分布式协同后端中频题