4)面试题
一、鉴权与权限控制
鉴权和授权的区别是什么?
- 鉴权(Authentication):验证用户是谁。
- 授权(Authorization):验证用户能做什么。
JWT 和 Session 有什么区别?各自优缺点?适用场景?
RBAC 与 ABAC 的区别?各适用于什么业务场景?
如何在分布式系统中统一权限管理?Token 应该如何验证?
设计一个权限系统(支持角色、菜单、按钮级控制),数据库表结构怎么设计?如何扩展性强?
前后端分离项目中,如何防止用户伪造权限访问敏感接口?
二、微服务架构设计
微服务的核心优势是什么?和单体架构的最大区别在哪?
微服务拆分的粒度怎么把握?是否有最佳实践?
服务注册与发现的机制是怎么实现的?用过哪些注册中心?(如 Consul、Nacos、Eureka)
微服务中如何进行配置中心管理?有没有动态配置刷新经验?
如何实现服务熔断与降级?Spring Cloud、Sentinel、Hystrix 如何选型?
如何在多个微服务之间共享公共模块(如工具类、通用中间件、实体)?
三、服务间通信
微服务之间通信方式有哪些?同步与异步通信的场景如何选择?
说一下 HTTP REST 与 gRPC 的对比?你会选择哪种?为什么?
消息队列在服务通信中如何使用?有哪些消息队列?区别是什么?
服务之间调用失败了,如何保证消息不丢失或系统不雪崩?
接口幂等性在服务间通信中怎么保证?
如何在链路中追踪一次请求经过了哪些服务?用过哪些链路追踪工具?
四、Redis 实践与优化
Redis 常见的数据结构有哪些?应用场景分别是什么?
Redis 缓存雪崩、穿透、击穿的原理及解决方案?
Redis 分布式锁如何实现?为什么要设置过期时间?如何防止锁误删?
Redis 的持久化机制 RDB 与 AOF 区别?你怎么选?
Redis 是单线程模型,为什么性能这么高?它的并发模型是怎样的?
Redis 集群部署方式有哪几种?如何保证高可用?主从复制、哨兵机制怎么理解?
五、日志、监控与系统管理
系统日志分为哪几种级别?如何规划日志输出?
如何设计一个高效的日志采集与分析方案?用过哪些工具?(如 ELK、EFK)
什么是链路追踪?常见工具有哪些?你了解 Trace ID 的原理吗?
你如何监控一个线上服务的运行状态?遇到故障如何快速定位问题?
如何对微服务系统进行 Prometheus + Grafana 的监控部署?
如果某个接口调用延迟明显变长,你会如何排查性能瓶颈?
六、高并发处理
什么是高并发?系统承载能力与吞吐量之间的关系是?
常见限流算法有哪些?(如漏桶、令牌桶)分别应用场景是什么?
如何实现接口限流?用过哪些限流组件(如 Sentinel、RateLimiter)?
你如何设计一个秒杀系统?如何防止超卖?如何保证一致性?
在高并发场景中,数据库如何优化读写性能?如何做到读写分离?
说说你对 CAP 原理的理解,分布式系统如何权衡一致性与可用性?
七、分库分表与数据拆分
为什么要分库分表?它解决了什么问题?
分库分表后 ID 怎么生成?用过哪些方案?(如雪花算法、UUID、数据库自增)
如何设计分库分表策略?按照时间、ID 还是业务字段?
查询需要跨库/跨表时怎么处理?如何避免性能下降?
用过哪些中间件实现分库分表?(如 ShardingSphere、MyCAT)它们的原理是什么?
分库分表如何做数据迁移?如何保证业务不中断?