高可用解决方案
高可用解决方案
概念
当系统出现故障(机器、网络、服务)时,仍能持续对外提供服务,尽量减少不可用时间。
SLA(Service Level Agreement)服务水平协议:衡量服务可用性指标。
设计原则
- 冗余:避免单点故障。
- 故障隔离:机房隔离、线程池隔离。
- 自动故障转移:系统自动检测故障并切换到备用资源。如 ZK 选主、Redis 哨兵。
- 降级:当系统压力过大,优先保证核心功能可用,非核心功能暂时不可用。
- 限流:限制请求数量,避免系统被流量打跨。
- 熔断:当依赖系统失败率过高时,暂时停止调用依赖系统,快速失败。
架构层次
| 架构层次 | 高可用方案 |
|---|---|
| 接入层 | 负载均衡 |
| 应用层 | 无状态服务、多实例、K8s 部署 |
| 数据层 | 增加缓存层;mysql主从复制;clickhouse 多副本 |
This post is licensed under CC BY 4.0 by the author.