什么是高可用?
高可用(High Availability, HA)是指系统在面对各种异常情况时仍能正常提供服务的能力。通常用可用性百分比来衡量:
- 99%(876小时/年宕机 = 约3.6天)—— 基本可用
- 99.9%(8.76小时/年宕机)—— 一般商用水平
- 99.99%(52.6分钟/年宕机)—— 高可用
- 99.999%(5.26分钟/年宕机)—— 极高可用(银行/电信级别)
对于大多数青岛企业来说,目标是达到99.9%以上的可用性。
典型高可用架构
第一层:负载均衡
- 作用:将流量均匀分配到多台服务器,避免单点故障
- 方案:Nginx/HAProxy/云厂商SLB(阿里云SLB/腾讯云CLB)
- 策略:轮询/加权轮询/最少连接/IP哈希等
第二层:Web服务器集群
- 至少2台Web服务器(互为备份)
- 无状态设计(Session存在Redis中而非本地)
- 自动伸缩(根据CPU/内存/请求数自动增减实例)
第三层:应用服务器
- API服务集群(同样至少2个实例)
- 消息队列削峰填谷(RabbitMQ/Kafka/RocketMQ)
- 缓存层加速读取(Redis Cluster)
第四层:数据库
- 主从复制(一主多从/读写分离)
- 分库分表(当单表数据量超过千万级时)
- 跨机房容灾(青岛市区+黄岛区双活或多活)
青岛企业落地步骤
阶段一:基础版(预算5000元/月以内)
- 2台云服务器(4核8G)+ 云数据库MySQL + 对象存储OSS + CDN
- 使用云厂商SLB做负载均衡
- 可用性预期:99.5%-99.9%
阶段二:进阶版(预算1-2万元/月)
- 多可用区部署(青岛可用区A+B)
- RDS主从 + Redis集群 + 消息队列
- WAF防护 + DDoS高防
- 可用性预期:99.95%+
阶段三:企业版(预算5万元/月以上)
- 多地多活(青岛+济南/北京异地容灾)
- 容器化部署(Kubernetes)
- 全链路监控(Prometheus+Grafana+告警)
- 自动化运维(CI/CD+IaC)
- 可用性预期:99.99%+
关键配置示例
Nginx负载均衡基本配置(upstream定义后端服务器组):定义两台后端服务器的地址和权重,proxy_pass转发请求到upstream组,开启健康检查确保故障节点被自动剔除。
监控和应急
- 全方位监控(基础设施→中间件→应用→业务)
- 分级告警(P0电话通知/P1短信+钉钉/P2邮件/P3日报汇总)
- 应急预案(每种故障场景都有对应的处理SOP)
- 定期演练(每季度至少一次故障演练)
面向青岛企业IT团队的技术实践指南,分享真实项目经验和最佳实践。