微服务架构是将一个大型应用程序拆分为一组小型、独立部署的服务,每个服务运行在自己独立的进程中,并通过轻量级通信机制(如HTTP REST API)进行通信。
与单体架构的区别:
- 部署方式:单体应用整体部署,微服务可独立部署
- 技术栈:单体通常采用统一技术栈,微服务支持多语言技术栈
- 数据管理:单体使用共享数据库,微服务每个服务有自己的数据库
- 可扩展性:单体只能整体扩展,微服务可按需扩展特定服务
- 容错性:单体一个模块故障影响整个系统,微服务故障隔离更好
Eureka:服务注册与发现组件
- 服务提供者启动时向Eureka注册自己的信息
- 服务消费者从Eureka获取服务提供者地址列表
- 支持服务健康检查和服务剔除机制
Ribbon:客户端负载均衡器
- 基于服务列表实现客户端负载均衡
- 支持轮询、随机、权重等多种负载策略
- 可与Eureka无缝集成
Feign:声明式服务调用组件
- 基于接口注解的REST服务调用
- 集成Ribbon实现负载均衡
- 简化服务间调用代码编写
Hystrix:服务熔断与降级
- 防止服务雪崩效应
- 实现服务熔断、降级、限流
- 提供监控仪表盘
Zuul/Gateway:API网关
- 统一入口,路由转发
- 身份认证与安全控制
- 请求监控与限流
Config:分布式配置中心
- 集中管理所有环境的配置
- 支持配置动态刷新
- 与Git等版本控制系统集成
服务熔断:
- 当服务调用失败率达到阈值时,断路器打开
- 在断路器打开期间,直接返回失败,不再调用实际服务
- 经过一段时间后进入半开状态,尝试恢复调用
服务降级:
- 在系统高负载时,暂时关闭非核心服务
- 提供默认返回值或缓存数据
- 保证核心服务的可用性
2PC(两阶段提交):
- 准备阶段:协调者询问所有参与者是否可以提交
- 提交阶段:如果所有参与者都同意,则提交事务
- 缺点:同步阻塞、单点故障、数据不一致风险
TCC(Try-Confirm-Cancel):
- Try阶段:资源检查和预留
- Confirm阶段:确认执行,要求幂等
- Cancel阶段:回滚操作,要求幂等
Saga模式:
- 长事务拆分为多个本地事务
- 每个本地事务都有对应的补偿事务
- 执行失败时按逆序执行补偿事务
消息队列最终一致性:
- 通过消息队列实现异步处理
- 保证消息可靠投递
- 结合本地消息表或事务消息
路由转发:
- 根据请求路径将请求转发到对应微服务
- 支持动态路由配置
- 负载均衡策略
认证鉴权:
- JWT令牌验证
- OAuth2.0授权
- API访问权限控制
流量控制:
- 限流:令牌桶、漏桶算法
- 熔断:服务异常时的快速失败
- 降级:非核心服务暂时关闭
监控日志:
- 请求链路追踪
- 访问日志记录
- 性能指标监控
安全防护:
- SQL注入防护
- XSS攻击防护
- DDoS攻击防护
Istio架构:
- 数据平面:Envoy代理,处理服务间通信
- 控制平面:Pilot、Mixer、Citadel
- 提供服务发现、负载均衡、故障恢复等功能
核心功能:
- 流量管理:路由规则、故障注入
- 安全通信:mTLS加密、身份认证
- 可观测性:指标收集、分布式追踪
容器化部署:
- Docker容器封装应用
- Kubernetes容器编排
- 服务自动伸缩
DevOps集成:
- CI/CD流水线
- 自动化测试部署
- 基础设施即代码
服务治理:
- 服务注册发现
- 配置中心管理
- 监控告警体系
通过深入理解这些微服务核心概念和互联网接入服务,求职者能够在面试中展现出扎实的技术功底和实战经验,为成功获得心仪职位奠定坚实基础。
如若转载,请注明出处:http://www.xmsimeng.com/product/44.html
更新时间:2026-01-13 05:03:25
PRODUCT