MST

星途 面试题库

面试题:微服务架构下常见的服务异常类型及处理策略

在微服务架构中,通常会遇到哪些类型的服务异常?针对每种异常类型,请阐述至少一种常见的处理策略。
20.6万 热度难度
后端开发微服务架构

知识考点

AI 面试

面试题答案

一键面试
  1. 网络异常
    • 处理策略:设置合理的超时时间,避免长时间等待。例如在调用远程服务时,根据业务需求设置如5秒的超时时间。当超时发生时,返回友好的提示信息给用户,告知服务暂时不可用,并记录日志以便后续排查问题。同时,可以采用重试机制,对于一些网络闪断等临时性问题,在一定次数内(如3次)进行重试。每次重试可适当增加等待时间(如指数退避算法),减少重试过于频繁对系统造成的压力。
  2. 服务不可用异常
    • 处理策略:使用服务熔断机制,当发现某个服务调用失败率达到一定阈值(如80%),则熔断该服务,后续一段时间内(如1分钟)不再调用该服务,直接返回错误信息给调用方,防止大量无效请求继续调用该不可用服务,避免级联故障。还可以采用服务降级策略,在服务不可用时,提供兜底的简单处理逻辑。例如电商系统中商品详情服务不可用时,返回简单的商品基本信息,保证核心业务流程(如下单)不受太大影响。
  3. 资源耗尽异常
    • 处理策略:进行资源监控,如监控服务器的CPU、内存、磁盘I/O等资源使用情况。当发现某项资源接近阈值(如内存使用率达到90%)时,通过自动扩缩容机制,增加服务器实例来分担压力,避免因资源耗尽导致服务异常。同时,优化服务代码,减少不必要的资源占用,例如及时释放数据库连接、关闭文件句柄等。
  4. 数据一致性异常
    • 处理策略:采用分布式事务解决方案,如TCC(Try - Confirm - Cancel)模式。在涉及多个微服务的数据操作场景下,先进行Try阶段尝试预留资源,确认各服务Try阶段成功后,执行Confirm阶段完成真正的数据提交,若任何一个服务Try阶段失败,则执行Cancel阶段回滚已做的操作,保证数据一致性。也可以使用消息队列,将数据变更操作以消息的形式发送到队列中,各微服务按顺序消费消息进行数据处理,确保数据变更的一致性。