比特鹰春招后端开发一面面经
面试题目
- 自我介绍
- Spring 的控制反转(IOC)和依赖注入(DI)是什么?
- Spring Boot 的启动核心注解有哪几个?
- @Service、@Component、@Mapper 等注解的区别。
- Spring Boot 和 Spring Cloud 的区别。
- 常见的分布式组件(注册中心、配置中心等)。
- 对微服务服务治理的理解。
- 常见的中间件及其区别。
- MQ 消息队列的使用场景及举例。
- 如何解决消息丢失和重复消费问题?
- 缓存方案的使用情况。
- Redis 的 RDB 和 AOF 有什么区别?
- Docker 的使用情况,docker-compose 的作用。
- 是否了解协程?
- 数据库的使用情况。
- 逻辑判断思考题。
- 综合类问题:对 AI Agent 的关注、单休接受度、职业规划、期望薪资、实习时间。
参考解析
- IOC与DI:IOC是控制反转,将对象的创建权交给容器管理;DI是依赖注入,将依赖的对象注入到类中。目的在于解耦,提高代码维护性。
- Spring Boot核心注解:核心是
@SpringBootApplication,它包含@SpringBootConfiguration(配置类)、@EnableAutoConfiguration(自动配置)、@ComponentScan(组件扫描)。 - RDB与AOF:RDB是全量快照,性能高但可能丢失最近数据;AOF是增量日志,数据安全性高但文件体积大、恢复速度较慢。
- 消息丢失与重复消费:
- 丢失:生产者确认机制(Confirm)、MQ持久化、消费者手动ACK。
- 重复:在消费端利用唯一ID做幂等处理(如数据库唯一约束或Redis SetNX)。
- 微服务治理:主要包括服务注册与发现、负载均衡、熔断降级、限流、链路追踪等,旨在保障分布式环境下的服务高可用与稳定性。