{T}

高可用架构 学习笔记(第 11 部分)

6.2 告警策略

javascript
// 告警配置
const alertConfig = {
  // CPU 告警
  cpu: {
    warning: {
      threshold: 70,
      duration: 300,  // 持续 5 分钟
      severity: 'warning'
    },
    critical: {
      threshold: 90,
      duration: 60,   // 持续 1 分钟
      severity: 'critical'
    }
  },
  
  // 可用性告警
  availability: {
    critical: {
      threshold: 99.9,
      duration: 300,
      severity: 'critical'
    }
  },
  
  // 错误率告警
  errorRate: {
    warning: {
      threshold: 1,   // 1%
      duration: 180,
      severity: 'warning'
    },
    critical: {
      threshold: 5,   // 5%
      duration: 60,
      severity: 'critical'
    }
  }
}

七、常见问题与解决方案

问题原因解决方案
单点故障关键组件无冗余集群部署、主备切换
数据不一致异步复制延迟同步复制、最终一致性
故障转移慢手动干预自动故障检测、自动转移
雪崩效应服务级联失败熔断、降级、限流
数据丢失异地容灾缺失异地备份、实时同步
恢复时间长缺乏预案演练、自动化恢复

八、学习要点总结

核心要点

  1. 高可用三大保障场景

    • 本地高可用:硬件故障、系统故障
    • 业务逻辑保护:人为失误、软件错误
    • 容灾多活:区域性灾难、自然灾害
  2. CAP 理论核心

    • C: 一致性
    • A: 可用性
    • P: 分区容错
    • 分布式系统只能满足 CP 或 AP
  3. 集群 vs 分布式

    • 集群:CA 特性、强一致性、部署简单
    • 分布式:CP/AP 特性、可扩展性、复杂度高
  4. 高可用技术方案

    • 硬件冗余:RAID、双电源、网络冗余
    • 数据保护:快照、备份、审计日志
    • 容灾多活:主备、双活、多活
  5. 监控与告警

    • 系统层、应用层、数据层监控
    • 及时告警、快速响应

九、延伸学习资源

推荐书籍

  1. 《高可用架构》 - 李智慧
  2. 《分布式系统原理》 - 范磊
  3. 《大型网站技术架构》 - 李智慧
  4. 《Release It!》 - Michael Nygard

在线资源

  1. Netflix Hystrixhttps://github.com/Netflix/Hystrix
  2. Redis Sentinel 文档https://redis.io/topics/sentinel
  3. Kubernetes 高可用https://kubernetes.io/
  4. CAP 定理详解https://www.ibm.com/topics/cap-theorem

实战练习

  1. 搭建 MySQL 主从复制
  2. 配置 Redis Sentinel 高可用
  3. 实现服务熔断和降级
  4. 搭建监控系统 Prometheus + Grafana

附录:高可用架构设计清单

javascript
// 高可用架构设计检查清单
const haChecklist = {
  // 硬件层
  hardware: [
    ' 服务器冗余(多台服务器)',
    ' 磁盘冗余(RAID)',
    ' 网络冗余(双网卡、双交换机)',
    ' 电源冗余(双电源、UPS、发电机)'
  ],
  
  // 数据层
  data: [
    ' 数据库主从复制',
    ' 数据备份策略(全量 + 增量)',
    ' 数据快照(快速恢复)',
    ' 异地容灾(主备/双活/多活)'
  ],
  
  // 应用层
  application: [
    ' 服务多实例部署',
    ' 负载均衡',
    ' 服务注册发现',
    ' 熔断降级限流'
  ],
  
  // 监控层
  monitoring: [
    ' 实时监控(系统、应用、数据)',
    ' 告警通知(邮件、短信、电话)',
    ' 日志收集(ELK)',
    ' 链路追踪(Jaeger/Zipkin)'
  ],
  
  // 运维层
  operations: [
    ' 故障演练(定期演练)',
    ' 应急预案(详细的处理流程)',
    ' 自动化运维(Ansible/Terraform)',
    ' 文档完善(架构图、操作手册)'
  ]
}

笔记整理完成!

这份笔记详细讲解了高可用架构的核心概念、三大保障场景、CAP理论、集群与分布式架构对比,并结合实际案例和代码示例,帮助理解高可用架构设计的核心思想。建议结合实际项目进行高可用架构设计和实践。