Spring Boot和微服务面试题
Spring Boot基础运维
应用部署
- Spring Boot应用有哪几种部署方式?(jar、war、容器化)
- 如何查看Spring Boot应用的版本信息?
- Spring Boot应用启动失败如何排查?常见原因有哪些?
- 如何验证Spring Boot应用是否启动成功?
配置管理
- Spring Boot配置文件优先级是怎样的?
- 如何在不重启应用的情况下查看当前配置?
- 生产环境配置文件如何管理?如何避免敏感信息泄露?
- 如何实现配置的热更新?
端口与健康检查
- Spring Boot默认端口是多少?如何修改?
- 什么是Actuator?主要用来做什么?
- 如何配置健康检查端点?K8s如何使用这些端点?
/health
、/info
、/metrics
端点的作用分别是什么?
监控与性能
Actuator监控
- 生产环境应该开放哪些Actuator端点?
- 如何保护Actuator端点的安全?
- 如何通过Actuator查看应用的内存使用情况?
- 如何监控Spring Boot应用的线程池状态?
性能监控
- Spring Boot应用如何集成Prometheus?
- 需要监控Spring Boot应用的哪些关键指标?
- 如何监控HTTP请求的响应时间和QPS?
- 数据库连接池如何监控?
日志管理
- Spring Boot默认使用什么日志框架?
- 如何配置日志级别?能否动态调整?
- 如何实现日志文件的自动轮转?
- 容器环境下Spring Boot日志如何收集?
故障排查
启动问题
- Spring Boot应用启动慢如何排查?
- 端口被占用如何处理?
- 应用启动时内存溢出如何解决?
- 依赖冲突导致启动失败如何定位?
运行时问题
- Spring Boot应用CPU占用高如何排查?
- 接口响应慢如何定位是哪个环节的问题?
- 应用频繁Full GC如何处理?
- 数据库连接池耗尽如何排查?
Spring Cloud Alibaba
注册中心(Nacos)
- Nacos作为注册中心的部署模式有哪些?
- 如何监控Nacos的健康状态?
- 服务注册失败的常见原因?
- Nacos集群如何保证高可用?
- 如何处理Nacos与服务之间的网络问题?
配置中心
- Nacos配置中心如何实现配置的版本管理?
- 配置推送失败如何排查?
- 如何实现配置的灰度发布?
- 配置中心宕机对应用有什么影响?
服务治理
- 什么是服务熔断?Sentinel如何实现?
- 如何配置Sentinel的流控规则?
- Sentinel Dashboard如何部署和使用?
- 限流降级规则如何持久化?
微服务运维
服务发现与负载均衡
- 服务发现失败会有什么表现?
- 如何查看服务的负载均衡是否生效?
- 服务下线后,其他服务多久能感知?
- 如何实现服务的优雅下线?
链路追踪
- 如何部署SkyWalking或Zipkin?
- 链路追踪对性能有多大影响?
- 如何通过链路追踪定位慢接口?
- 链路数据如何存储和清理?
网关运维
- Spring Cloud Gateway的部署架构是怎样的?
- 如何监控网关的性能指标?
- 网关路由配置错误如何快速定位?
- 如何实现网关的灰度发布?
容器化与K8s
容器化部署
- Spring Boot应用Docker镜像如何优化大小?
- 如何处理容器中的时区问题?
- JVM参数在容器中如何设置?
- 如何实现配置与镜像分离?
K8s集成
- Spring Boot应用在K8s中如何实现滚动更新?
- 如何配置合适的资源限制(requests/limits)?
- Pod频繁重启如何排查原因?
- 如何实现基于Spring Boot Actuator的健康检查?
服务网格
- Spring Boot应用如何接入Istio?
- 使用服务网格后如何排查网络问题?
- Sidecar对应用性能有什么影响?
最佳实践
高可用保障
- 微服务架构下如何保证整体的高可用?
- 如何设计合理的超时和重试策略?
- 分布式事务失败如何处理?
- 如何避免级联故障?
运维规范
- 微服务应用发布的标准流程是什么?
- 如何实现金丝雀发布?
- 微服务监控体系应该包含哪些内容?
- 如何建立微服务的SLA标准?
更新时间:2025-01-30