三高问题
约 1194 字大约 4 分钟
三高问题
高并发
负载均衡 + 池化技术 + 漏斗模型
影响因素
技术架构
- 分布式架构: master/slave架构、 p2p架构
- 分层架构:
- 削峰架构:
- 限流架构:
- 读写分离:
- 超高并发读: 三级缓存
- 超高并发写: 队列缓冲+批量写入、 二级队列缓冲模式
实现方案
- 争用安全: 分布式锁
- 降级: 熔断降级、 流控降级
- 限流: 黑名单限流、 ip/用户限流、 应用限流
- 缓存: 一级、 二级、 三级
- 接入层高并发: 动静分离、 前后端分离、 页面静态化、 图片/文件单独存放、 CDN加速、 前端文件迁移到网关、 智能DNS
- 数据一致性:
- 数据分片一致性: CRC取模 -> 一致性Hash
- 跨CPU内核执行: MESI协议
- 集群内部节点一致性: 数据库副本、 ES副本、 缓存副本、 ZK副本
- 系统内跨层数据一致性: 数据库DB和缓存数据一致性
- 跨系统数据一致性: 分布式事务
- 跨地域数据一致性: 缓存同步、 数据库同步、 业务补偿
- 数据库高并发: 减少请求数量、 数据库集群、 分库分表
- 动态伸缩: 公私结合、 K8s弹性收缩
- 隔离策略: 基础设施隔离、 物理隔离、 服务隔离
- 削峰: 消息队列
- 读写分离: 写主库、 读从库
- 异构索引: 写结构化数据、 查异构索引
高性能
系统参数优化 + 高性能缓存 + 高性能日志
影响因素
请求耗时 = 网络延迟+请求/返回处理耗时+业务处理+磁盘+算法计算+下游调用
- 用户网络环境
- 请求/返回数据大小
- 业务系统 CPU、内存、磁盘等性能
- 下游资源性能
- 算法实现是否高效
- 请求链路长短
技术架构
- 通讯架构: Reactor模式
- 无锁架构: MPSC、 线程本地缓存
- 池化架构: 内存池、 对象池、 线程池、 连接池
- 分治模式: 动作解耦、 数据分片、 G1Region、 磁盘Block Group
- 副本模式: copy on write、 mvcc、 局部高速副本(javacache、redis、cdn、cpu、数据库、es、rocketmq、pagecache)
实现方案
- JVM优化: 减少STW、 Spring调优
- 无锁编程: CAS、 AQS、 原子类
- 高性能IO: Reactor、 零拷贝、 Netty
- 线程池: 减少线程创建和销毁
高可用
基础设施高可用 + 故障转移和切换 + 过载保护(限流+熔断) + Web安全(OWASP TOP 10)
影响因素
- 服务自身因Bug挂掉或无法正常工作;
- 服务因机器物理故障导致无法正常工作,比如磁盘坏块、内存颗粒坏了、主板故障等;
- 服务器物理机因机房断网、断电、空调损坏无法降温等原因导致机房故障;
- 地震、洪水、台风等灾害导致机房损坏;
- 服务依赖的组件故障导致无法正常工作;
- 被黑客攻击导致无法正常工作;
- 并发量超过系统承载能力,导致系统崩溃、数据错乱。
技术架构
- master/slave架构: kafka
- P2P架构: redis cluster
- Failover架构: kafka
实现方案
- 目标: 4个9、 5个9
- 接入层高可用: 异地多活、 智能DNS/HTTPDNS、 Keepalive保活、 防DDos
- 服务层高可用: 注册中心高可用、 微服务实例>=2
- 缓存层高可用: 代理/哨兵/cluster模式
- 数据库高可用: 数据库集群、 数据定期备份
- 中间件高可用: 反向代理高可用、 ES高可用、 MQ高可用
- 容错方案: 客户端容错、 错误重试机制、 备用服务
- 运维与监控:
- 立体化监控: 基础设施监控、 应用层监控
- 定期检测: 接口自动巡检、 假死自启动
高扩展
- 无入侵架构: skywalking、 arthas
- 插件式架构: skywalking、 shardingjdbc、 spring、 springboot
- 微内核架构: skywalking
spring、mybatis、dubbo
参考
- 打造千万级流量秒杀系统 - 前小米国际电商技术负责人 - 拉勾教育 (lagou.com)
- 秒杀架构 (yuque.com) - 儒猿
- Soulballad/miaosha: ⭐⭐⭐⭐秒杀系统设计与实现.互联网工程师进阶与分析🙋🐓 (github.com)
- 架构师哲学,思想,模式| ProcessOn免费在线作图,在线流程图,在线思维导图
- 理论篇:一张价值10W的架构师知识图谱| ProcessOn免费在线作图,在线流程图,在线思维导图
- 微信抢红包方案 (flowus.cn)
- 什么是并发、高并发以及实现高并发需要考虑的因素 - 掘金 (juejin.cn)
- 高并发, 你真的理解透彻了吗? - 知乎 (zhihu.com)