其他总结
高并发、高性能、高可用
高并发 我们使用 QPS(Queries Per Second,每秒查询率)来衡量系统承载能力。 架构策略有
- 负载均衡
- 池化技术
- 流量漏斗
高性能 性能直接影响用户的感官体验,访问一个系统,如果超过5秒没有响应,绝大数用户会选择离开。
- 高性能缓存
- 日志优化,避免IO瓶颈
高可用
- MTBF(Mean Time Between Failure),系统可用时长
- MTTR(Mean Time To Repair),系统从故障后到恢复正常所耗费的时间
- SLA(Service-Level Agreement),服务等级协议,用于评估服务可用性等级。计算公式是
MTBF/(MTBF+MTTR)
一般我们所说的可用性高于 99.99%,是指 SLA 高于 99.99%。 其实就是 可用时间/可用时间 + 故障时间
- 多云架构、异地多活、异地备份
- 主备切换,如redis缓存、mysql数据库,主备节点会实时数据同步、备份。如果主节点不可用,自动切换到备用节点
- 微服务,无状态化架构,业务集群化部署,有心跳检测,能最短时间检测到不可用的服务。
- 通过熔断、限流,解决流量过载问题,提供过载保护
- 重视web安全,解决攻击和XSS问题
外部接口大量超时,把整个系统拖垮,引发雪崩!如何解决?
使用熔断 我们在使用一些应用 到时候,经常可以看到,操作频繁,请稍后重试。就是触发了 熔断保护了
目前市面上的熔断框架很多,如:Sentinel
、Hystrix
、Resilience4j
等,这些框架的设计理念都差不多。
网关的选型
常用的组件功能:
- 黑名单拦截
- 日志
- 参数校验
- 鉴权
- 限流
- 负载均衡
- 路由转发
- 监控
- 灰度分流
- 多协议支持
- 熔断、降级、重试、数据聚合等
海量数据如何优化
- 缓存加速
- 读写分离
- 垂直拆分
- 分库分表
- 冷热数据分离
- ES助力复杂搜索
- NoSQL
- NewSQL
本地需要做的实验
- ES 复杂搜索
- MQ
- 冷热数据分离
- 主从备份
- 网关配置
- 长连接配置