跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Java大前端java

大型网站技术架构:网站的高性能架构

网站性能指标包括响应时间、并发数、吞吐量及性能计数器。优化策略分为 Web 前端、应用服务器和存储服务器三层。前端通过合并资源、启用缓存、CDN 加速及反向代理提升访问速度。应用服务器采用分布式缓存、消息队列异步化、负载均衡集群及代码优化手段。存储层考虑分布式存储、磁盘阵列等技术方案以提升整体系统性能。

二进制发布于 2025/2/4更新于 2026/6/1014 浏览
大型网站技术架构:网站的高性能架构

网站性能是客观的指标,可以具体体现到响应时间、吞吐量、并发数、性能计数器等技术指标。

1、性能测试指标

1.1 响应时间

指应用执行一个操作需要的时间,指从发出请求到最后收到响应数据所需要的时间。如下列出了系统常用的操作响应时间表。

操作响应时间
打开一个网站几秒
数据库查询一条记录(有索引)十几毫秒
机械磁盘一次寻址定位4 毫秒
从机械磁盘顺序读取 1M 数据2 毫秒
从 SSD 磁盘顺序读取 1M 数据0.3 毫秒
从远程分布式换成 Redis 读取一个数据0.5 毫秒
从内存读取 1M 数据十几微妙
Java 程序本地方法调用几微妙
网络传输 2Kb 数据1 微妙

实践中计算响应时间通常是通过平均时间计算的平均值。

1.2 并发数

指系统能够同时处理的请求的数目,这个数字也反映了系统的负载性能。对于网站而言,并发数指网站用户同时提交请求的用户数目。 网站系统用户数 > 网站在线用户数 > 网站并发用户数

1.3 吞吐量

指单位时间内系统处理的请求数量,体现系统的整体处理能力。对于网站,可用'请求数/秒'或'页面数/秒'或'访问人数/天'或'处理业务数/小时'等来衡量。 TPS(每秒事物数) 是吞吐量的一个常用量化指标。系统还有 HPS(每秒 HTTP 请求数)、QPS(每秒查询数)。

1.4 性能计数器

指操作系统的一些数据指标如 System load(系统负载),CPU 使用率、内存使用率、磁盘等使用情况。

2、性能优化策略

根据网站分层架构,可分为 Web 前端性能优化、应用服务器性能优化、存储服务器性能优化。

2.1 Web 前端优化
2.1.1 浏览器访问优化
  • 减少 HTTP 请求数,主要可通过合并 CSS,JavaScript、图片。
  • 使用浏览器端缓存。在某些时候,静态资源文件编写需要及时应用到客户端浏览器,这种情况下,可通过改变文件名来实现。
  • 启用页面压缩,文本文件的压缩效率可达 80% 以上。
  • CSS 放在页面最上面,JavaScript 放在页面最下面
  • 减少 Cookie 传输。可以考虑使用独立域名来发送 Cookie 等。
2.1.2 CDN 加速

CDN 的本质仍然是一个缓存,只是部署在离用户最近的服务器上,一般缓存的都是静态资源。

2.1.3 反向代理

除了能够保护网站安全的作用以及负载均衡的作用外,反向代理还能够提供缓存作用 (动态资源)。

2.2 应用服务器性能优化

应用服务器就是处理网站业务的服务器,网站的业务代码都部署在这里,主要优化手段有缓存、集群、异步等。

2.2.1 分布式缓存

缓存主要用来存放哪些读写比很高、很少变化的数据。

分布式缓存指缓存部署在多个服务器组成的集群中,以集群方式提供缓存服务,其具体架构有两种,一种是以 JBoss Cache 伪代码的需要更新同步的分布式缓存,一种是以 Memcached 为代表的不互相通信的分布式缓存。

Jboss Cache 的分布式缓存在集群中的所有服务器中保存相同的缓存数据,当某台服务器有缓存更新的时候,会通知集群中其他机器更新缓存数据。优点是应用程序可以从本地快速的获取缓存数据,但当集群规模较大的时候,缓存更新信息需要通过到集群所有机器,其代价可想而知。

大型网站需要的缓存数据一般都很大,可能会有 TB 的内存占用,这时候就的使用 Memcached,是一种互不通信的架构,每台存储的缓存数据可以不一样。

2.2.2 异步操作

为了改善网站的扩展性,可以使用消息队列将调用异步化。

2.2.3 使用集群

在网站高并发访问的情况下,使用负载均衡技术为一个应用构建一个由多台服务器组成的集群,将并发访问请求分发到多台服务器上处理。

2.2.4 代码优化

代码优化主要涉及多线程、资源复用(对象池或单例)、数据结构和垃圾回收。

2.3 存储性能优化

可以考虑使用分布式存储、openfiler、磁盘阵列、HDFS(Hadoop)。

目录

  1. 1、性能测试指标
  2. 1.1 响应时间
  3. 1.2 并发数
  4. 1.3 吞吐量
  5. 1.4 性能计数器
  6. 2、性能优化策略
  7. 2.1 Web 前端优化
  8. 2.1.1 浏览器访问优化
  9. 2.1.2 CDN 加速
  10. 2.1.3 反向代理
  11. 2.2 应用服务器性能优化
  12. 2.2.1 分布式缓存
  13. 2.2.2 异步操作
  14. 2.2.3 使用集群
  15. 2.2.4 代码优化
  16. 2.3 存储性能优化
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • C++ 继承机制详解:访问控制、同名隐藏与派生类默认成员函数
  • Git 分支管理:从基础概念到团队协作规范
  • C语言网络编程入门:Socket编程、TCP/IP协议与通信实现
  • Mapnik 在 Windows 10 下的源码编译指南
  • 四款主流 AI 编程 IDE 横向评测:从辅助到代理的演进路径
  • AI 绘画提示词实战指南:从基础原理到高效创作
  • Flutter Web 开发解决跨域(CORS)问题指南
  • 阿里 Z-Image-Turbo 文生图镜像部署与性能实测
  • Coze 智能体开发入门与实战指南
  • Windows 11 安装 JDK 25:下载、配置环境变量及验证
  • 基于 OpenClaw 与 Open WebUI 搭建企业多部门私有化 AI 平台
  • 2025 AI 绘画主流 Prompt 写法结构与进阶技巧实战
  • AI 时代产品经理成长指南
  • Python 真的有必要学吗?基于工作场景的实用性分析
  • Claude Code 高级编程技巧与实战项目详解
  • 基于子集选择算法的负载均衡方案
  • 缓存算法实战:LRU 与 LFU 的 Java 实现与原理解析
  • Flutter Clean Architecture 架构设计实践
  • DeepSeek 各版本演进历程与优缺点深度解析
  • Z-Image-ComfyUI 快速搭建 AI 绘画系统

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online