黑马+点评常见问题
以下是整合后的所有问题:
项目整体架构与业务逻辑
- 你这个平台支持哪些具体的生活服务?例如商品订购、实时餐饮,能详细说说每个模块的业务流程吗?
- 系统是怎么划分模块的?是基于微服务架构还是单体应用?为什么选择这种架构?
- 多终端接入是怎么实现的?不同设备(Web、APP)请求之间的兼容性和适配性如何保证?
- 你在这个项目中负责的核心模块有哪些?是否有从0到1的模块设计或独立负责的子系统?
核心技术与实现细节
用户管理与认证
- 你提到了Spring Security + JWT + Redis的组合,是怎么实现“跨设备登录”和“Session共享”的?每种技术的职责是什么?
- Redis中存储的token是如何管理的?有做过token刷新机制或者黑名单处理吗?
- 如何防止JWT被伪造或重放攻击?你是否有做双token(access + refresh)机制?
订单系统与并发优化
- 你在订单模块中使用了Redis和分布式锁,能详细说说锁的粒度、类型(如Redisson、SETNX)以及为什么选择它们?
- 在高并发抢购场景下,你是如何防止超卖的?库存扣减是在哪个环节完成的?Redis还是数据库?
- Nginx负载均衡是如何配置的?是否使用了upstream分配策略?是否用过健康检查?
商品推荐与用户行为分析
- 你们的个性化推荐是基于什么算法?是协同过滤、内容推荐还是基于规则的?有用到机器学习吗?
- 用户行为数据都记录了哪些信息?是用AOP还是埋点技术采集的?存储在MySQL的哪些表结构里?如何做数据清洗和分析?
- 提到Redis黑名单防止恶意操作,黑名单如何生成、维护?多久清理一次?如何防止误杀?
系统性能与可用性
- 你们如何保障高可用?有没有做服务熔断、降级?用了哪些组件(如Hystrix、Sentinel)?
- Redis做了哪些优化(如持久化、主从复制、哨兵、Cluster)?应对Redis宕机你们有预案吗?
- 你如何监控系统性能和瓶颈?是否接入了Prometheus、ELK、SkyWalking或其他监控系统?
安全与部署
- 涉及文件上传时,阿里云OSS是怎么接入的?有没有考虑安全访问策略(如STS授权、预签名URL)?
- 平台是否开放API?如果是,如何防止接口被刷(限流方案)?是用的Bucket4j、Guava RateLimiter还是自己实现?
- 如何做数据脱敏与加密?对用户敏感信息(如手机号、地址)有哪些处理?
测试、CI/CD与团队协作
- 你们有没有写单元测试或接口测试?测试覆盖率如何?是否使用了JUnit + MockMvc + Postman/Swagger?
- 是否用过Docker、Nacos、K8s进行部署或配置管理?
- 你在团队中是以什么身份参与的?开发、架构、测试、文档、部署等哪些环节你都有参与?有没有带过人或者负责需求拆解?
开放式追问(用于深挖能力)
- 你觉得这个平台如果要扩展到“本地跑腿服务”或“即时配送”,你会从哪些方面入手修改现有架构?
- 如果某天Redis挂了,或者被攻击刷爆了内存,你这个系统会出现什么问题?如何快速恢复?
- 你有没有考虑过接入消息队列?比如订单异步处理、延迟支付超时自动取消?为什么没有使用(或使用了哪个)?
其他问题
- 如何利用SpringBoot提高开发效率?
- 为什么选择Mysql作为数据库?
- 如何优化Mysql的性能,特别是在高并发情况下?
- 你们如何使用Redis来缓存订单请求?
- 如何确保缓存的一致性和有效性?
- 你们如何处理缓存穿透、缓存雪崩和缓存击穿的问题?
- 你们是如何结合Spring Security、JWT和Redis实现用户认证与权限控制的?
- 如何确保JWT的安全性,防止被篡改或重放攻击?
- 你们是如何设计系统的高可用性的?
- 如何处理系统的扩展性,以应对不断增长的用户和数据?
- 你们为什么选择阿里云OSS作为文件存储解决方案?
- 如何确保文件的安全和高效读取?
- 你们在项目中如何使用WebSocket?
- WebSocket如何帮助你们实现实时功能?
- 你在项目中扮演了什么角色?
- 你是如何管理项目进度和团队协作的?
- 在项目开发过程中遇到了哪些挑战?你是如何解决的?
- 你是如何优化系统性能的?
- 你们是如何确保高效、安全的用户体验的?
- 你们是如何根据实时数据变化进行动态调整的?