Skip to content

4)面试题

一、鉴权与权限控制

  1. 鉴权和授权的区别是什么?

    • 鉴权(Authentication):验证用户是谁。
    • 授权(Authorization):验证用户能做什么。
  2. JWT 和 Session 有什么区别?各自优缺点?适用场景?

  3. RBAC 与 ABAC 的区别?各适用于什么业务场景?

  4. 如何在分布式系统中统一权限管理?Token 应该如何验证?

  5. 设计一个权限系统(支持角色、菜单、按钮级控制),数据库表结构怎么设计?如何扩展性强?

  6. 前后端分离项目中,如何防止用户伪造权限访问敏感接口?

二、微服务架构设计

  1. 微服务的核心优势是什么?和单体架构的最大区别在哪?

  2. 微服务拆分的粒度怎么把握?是否有最佳实践?

  3. 服务注册与发现的机制是怎么实现的?用过哪些注册中心?(如 Consul、Nacos、Eureka)

  4. 微服务中如何进行配置中心管理?有没有动态配置刷新经验?

  5. 如何实现服务熔断与降级?Spring Cloud、Sentinel、Hystrix 如何选型?

  6. 如何在多个微服务之间共享公共模块(如工具类、通用中间件、实体)?

三、服务间通信

  1. 微服务之间通信方式有哪些?同步与异步通信的场景如何选择?

  2. 说一下 HTTP REST 与 gRPC 的对比?你会选择哪种?为什么?

  3. 消息队列在服务通信中如何使用?有哪些消息队列?区别是什么?

  4. 服务之间调用失败了,如何保证消息不丢失或系统不雪崩?

  5. 接口幂等性在服务间通信中怎么保证?

  6. 如何在链路中追踪一次请求经过了哪些服务?用过哪些链路追踪工具?

四、Redis 实践与优化

  1. Redis 常见的数据结构有哪些?应用场景分别是什么?

  2. Redis 缓存雪崩、穿透、击穿的原理及解决方案?

  3. Redis 分布式锁如何实现?为什么要设置过期时间?如何防止锁误删?

  4. Redis 的持久化机制 RDB 与 AOF 区别?你怎么选?

  5. Redis 是单线程模型,为什么性能这么高?它的并发模型是怎样的?

  6. Redis 集群部署方式有哪几种?如何保证高可用?主从复制、哨兵机制怎么理解?

五、日志、监控与系统管理

  1. 系统日志分为哪几种级别?如何规划日志输出?

  2. 如何设计一个高效的日志采集与分析方案?用过哪些工具?(如 ELK、EFK)

  3. 什么是链路追踪?常见工具有哪些?你了解 Trace ID 的原理吗?

  4. 你如何监控一个线上服务的运行状态?遇到故障如何快速定位问题?

  5. 如何对微服务系统进行 Prometheus + Grafana 的监控部署?

  6. 如果某个接口调用延迟明显变长,你会如何排查性能瓶颈?

六、高并发处理

  1. 什么是高并发?系统承载能力与吞吐量之间的关系是?

  2. 常见限流算法有哪些?(如漏桶、令牌桶)分别应用场景是什么?

  3. 如何实现接口限流?用过哪些限流组件(如 Sentinel、RateLimiter)?

  4. 你如何设计一个秒杀系统?如何防止超卖?如何保证一致性?

  5. 在高并发场景中,数据库如何优化读写性能?如何做到读写分离?

  6. 说说你对 CAP 原理的理解,分布式系统如何权衡一致性与可用性?

七、分库分表与数据拆分

  1. 为什么要分库分表?它解决了什么问题?

  2. 分库分表后 ID 怎么生成?用过哪些方案?(如雪花算法、UUID、数据库自增)

  3. 如何设计分库分表策略?按照时间、ID 还是业务字段?

  4. 查询需要跨库/跨表时怎么处理?如何避免性能下降?

  5. 用过哪些中间件实现分库分表?(如 ShardingSphere、MyCAT)它们的原理是什么?

  6. 分库分表如何做数据迁移?如何保证业务不中断?