高频微服务面试题总结
微服务基础概念
-
什么是微服务架构?
- 将单一应用拆分为一组小型服务
- 每个服务运行独立进程,轻量级通信
- 独立开发、部署和扩展
- 特点:松耦合、独立技术栈、独立数据库
-
微服务与单体架构对比
维度 单体架构 微服务架构 开发效率 初期快 初期慢 部署 整体部署 独立部署 扩展性 整体扩展 细粒度扩展 技术多样性 单一技术栈 多语言支持 故障隔离 影响范围大 影响范围小 -
微服务优缺点
- 优点:
- 独立部署
- 技术异构性
- 弹性扩展
- 故障隔离
- 缺点:
- 分布式系统复杂性
- 数据一致性挑战
- 运维复杂度高
- 网络延迟
- 优点:
服务通信
-
微服务间通信方式
- 同步通信:
- REST (HTTP/JSON)
- gRPC (高性能二进制协议)
- GraphQL (灵活数据查询)
- 异步通信:
- 消息队列 (Kafka/RabbitMQ)
- 事件驱动 (Event Sourcing)
- 通信模式:
- 请求/响应
- 发布/订阅
- 事件通知
- 同步通信:
-
REST vs gRPC
特性 REST gRPC 协议 HTTP/1.1 HTTP/2 数据格式 JSON/XML Protocol Buffers 性能 较低 高 流支持 有限 完善(四种流模式) 浏览器支持 完善 有限(需要gRPC-web)
服务发现与注册
-
服务注册中心实现原理
- 核心功能:
- 服务注册
- 服务发现
- 健康检查
- 常见实现:
- Eureka (AP系统)
- Nacos (支持AP/CP)
- Consul (CP系统)
- Zookeeper (CP系统)
- 核心功能:
-
客户端负载均衡 vs 服务端负载均衡
- 客户端负载均衡:
- 客户端维护服务列表
- 自行选择服务实例(Ribbon)
- 优点:减少网络跳转
- 服务端负载均衡
- 客户端负载均衡: