大型网站核心架构中的"高性能"设计方法

🌙
手机阅读
本文目录结构

性能是一个网站架构设计的重要方面,任何软件架构设计方案都必须考虑可能会带来的性能问题;网站性能的优化手段非常多,从用户浏览器到数据库,影响用户请求的所有环节都可以进行性能优化;

一个打开很慢的网站会导致严重的用户流失(除非没得选,比如 12306);

代码层面优化

  • 使用多线程
  • 改善内存管理

浏览器端优化

  • 浏览器缓存
  • 页面压缩
  • 合理布局页面
  • 减少 Cookie 传输
  • 静态资源 CDN
  • 反向代理服务器
    • 缓存热点文件
    • 加快请求响应速度
    • 减轻应用服务器负载压力

应用服务端优化

通过缓存在内存中的热点数据处理用户请求,加快请求处理过程,减轻数据库压力

  • 服务器本地缓存
  • 分布式缓存
  • 异步操作/消息队列(当前请求直接响应给用户)
  • 服务器组成集群共同对外服务(提高整体处理能力,改善性能)

数据库

  • 关系型数据库
    • 索引
    • 缓存
    • SQL 优化
  • NoSQL 数据库
    • 优化数据模型
    • 储存结构
    • 伸缩特性

性能好坏的判断指标

  • 响应时间
  • TPS
  • 系统性能计数器

这些指标也是网站监控的重要参数,可以用来分析系统瓶颈,预测网站容量,并对异常指标进行报警,保障系统可用性 2

其它注意

两个方向需要注意考察

  • 系统在高并发的情况下,超出负载设计能力的情况下可能会出现的性能问题(高压力)
  • 系统在持续运行且访问压力不均匀情况下的稳定性

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

目前重心已经放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>