前言
学习优秀的架构,学习优秀的人。
高可用
高可用目标
指标
- 5个9(99.999%):代表一年不可用时间是5分钟。
- 4个9(99.99%):代表一年不可用时间是50分钟。
要求
- 3分钟定位问题。
- 5分钟恢复业务。
- 平均2个月最多发生一次问题。
高可用手段
1、接入层高可用
1-1、异地多活
- 跨国多活
- 跨城多活
- 同城多活
1-2、智能DNS
1-3、KeepAlive保活
- KeepAliveLVS
- KeepAliveNginx
1-4、防范DDOS攻击
2、服务层高可用
2-1、注册中心高可用(Nacos高可用地址切换)
2-2、微服务实例数大于等于2
3、缓存高可用:代理模式、哨兵模式、cluster模式。
4、数据库高可用:代理型高可用、配置型高可用、客户端高可用、数据定期备份。
5、中间件高可用
5-1、服务总线高可用
5-2、反向代理高可用
5-3、ES高可用
- MasterNode高可用
- DataNode高可用
- 读写分离
5-4、消息队列高可用
6、容错方案
6-1、客户端容错
6-2、错误重试机制
6-3、备用服务地址重试
7、运维与监控
7-1、立体化监控预警
- 基础设施:虚拟机监控、容器监控、Nginx、数据库监控、缓存监控
- 应用层监控预警:核心业务监控、ELK、调用链路监控、慢调用监控
7-2、定期巡检:接口自动巡检、假死自启动
高并发
高并发架构分类:
1、业务架构:业务分块、功能分块、功能分级(核心、非核心)。
2、模块架构:模块解耦、系统分层、垂直拆分。
3、数据存储架构:数据流量架构、数据容量架构。
4、流量架构
4-1、理论分析
- 流量规划:二八原则。
- 参考能力:LVS(10w QPS)、Nginx(5w QPS)、Gateway(5k QPS)、MQ(10w QPS)、Tomcat(1k QPS)、Mysql(1.5k QPS)、Redis(5w+ QPS)、Hbase(7w+ QPS)、ES(7w+ QPS)。
- 中间件规划:10w用户、1亿用户。
4-2、实时检测:客户端监控、服务端监控。
5、部署架构