微服务高可用设计?

发布于

一、无状态服务

  • 服务不保存状态,状态存 Redis/DB。
  • 多实例部署,负载均衡。
  • 任一实例挂了不影响。

二、服务发现

  • 注册中心(Nacos/Eureka)。
  • 服务实例上下线自动感知。
  • 客户端负载均衡跳过不健康节点。

三、健康检查

  • 注册中心心跳检测,不健康实例剔除。
  • K8s liveness/readiness 探针。

四、熔断降级

  • Sentinel/Hystrix 防止故障蔓延。
  • 降级返回兜底数据。

五、限流

  • 保护服务不被压垮。
  • 网关限流 + 服务限流双层。

六、多机房

  • 同城双活、异地多活。
  • 数据同步(DTS、消息队列)。

七、灰度发布

  • 金丝雀发布,逐步放量。
  • 出现问题快速回滚。