微服务 | 青训营

109 阅读1分钟

系统架构演变历史

  1. 单体架构
  2. 垂直应用架构
  3. 分布式架构
  4. SOA架构
  5. 微服务架构

单体架构

  1. 性能最高
  2. 冗余小
  3. Debug困难
  4. 模块相互影响
  5. 模块分工、开发流程

垂直应用架构

  1. 业务独立开发维护
  2. 不同业务存在冗余
  3. 还是单体

分布式

  1. 业务无关的独立服务

SOA

  1. 服务注册
  2. 系统设计是中心化的

微服务

  1. 彻底的服务化
  2. 自下而上
  3. 业务独立设计

核心要素

  1. 服务治理
  • 服务注册
  • 服务发现
  • 负载均衡
  1. 可观测性
  • 日志采集
  • 日志分析
  • 监控打点
  1. 安全
  • 身份验证

服务治理

流量治理

可以基于地区、集群、实例、请求等维度,对端到端流量的路由路径进行管理。

重试的意义

本地函数调用没有重试的必要。

远程函数调用存在网络抖动、下游负载高、宕机等问题,重试可以避免偶发的错误。

  • 降低错误率
  • 降低长尾延时
  • 容忍暂时性错误
  • 避开下游故障实例

限制重试比例:设置一个阈值,不超过该阈值。

防止链路重试、Hedged Requests。

稳定性治理

  • 网络攻击
  • 流量徒增
  • 机房断电
  • 光纤被挖
  • 机器故障

解决方式:限流、熔断、过载保护、降级。