大型网站性能优化途径

简介:

性能优化途径

Web前端性能优化

1.浏览器访问优化

  • 减少http请求

合并css,合并js,合并图片

  • 使用浏览器缓存

  • 启用压缩

  • CSS放在页面最上面,JS放在页面最下面(浏览器会在下载完CSS之后才对整个页面进行渲染。JS则相反,浏览器加载JS后立即执行,有可能会阻塞整个页面,造成页面缓慢。)

2.CDN加速

Content Distribute Network,内容分发网络。

本质仍然是一个缓存,将数据缓存在离用户最近的地方,使用户以最快速度获取数据。

CDN能够缓存的一般是静态资源,如图片、文件、CSS、Script脚本、静态页面等。这些文件访问频率很高,将其缓存在CDN可以极大改善网页的打开速度。

3.反向代理

传统的代理服务器将HTTP请求发送到互联网上!

而反向代理服务器位于机房一侧,代理Web服务器接收HTTP请求。

来自互联网的访问请求,必须经过反向代理服务器,相当于在Web服务器和可能的网络攻击之间建立了一个屏障。

反向代理服务器,可以通过配置缓存功能加速Web请求。

应用服务器性能优化

1.分布式缓存

缓存指将数据存储在相对较高访问速度的存储介质中,以供系统处理。(减少数据访问时间,减少计算时间)

缓存的本质是一个内存Hash表,数据缓存以一对Key、Value的形式存储在内存Hash表中。

频繁修改的数据不适合使用缓存。读多写少的数据,适合缓存。写入一次缓存,至少读取两次,缓存才有意义。

没有热点的内容,没有写入缓存的意义。

要设置缓存失效时间,避免数据不一致和脏数据。

2.异步操作

使用消息队列

(传统的)

(使用消息队列的)

消息队列具有很好的削峰作用,通过异步处理,将短时间高并发产生的事务消息存储在消息队列中,从而削平高峰期的并发事务。

3.使用集群(负载均衡)

三台Web服务器共同处理来自浏览器的访问请求,每台Web服务器需要处理的http请求只有总共并发请求数的三分之一。

4.代码优化

多线程

并发访问资源使用锁

资源复用(数据库连接,网络通信连接...)

恰当的使用数据结构

垃圾回收

存储性能优化

海量的数据读写对磁盘访问造成巨大压力

使用固态硬盘

B树存储

离开业务发展的支撑和驱动,技术走不远,甚至还会迷路。

业务优先



本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/7685925.html,如需转载请自行联系原作者

相关文章
|
SQL JSON 关系型数据库
Flink CDC实践(二)
Flink CDC实践(二)
|
2月前
|
JSON 监控 数据挖掘
借助拼多多 API,拼多多店铺商品类目优化精准指导
在电商竞争激烈的环境下,拼多多店铺通过API优化商品类目,可提升搜索排名与转化率。本文详解如何利用API获取类目数据、分析匹配度并实现自动化优化,助力商家精准定位商品类目,提升流量与销量。
147 0
|
小程序 开发者
【微信小程序-原生开发】实用教程05-首页(含自定义调试模式、插入图片、图文排版、底部留白、添加本地图片)
【微信小程序-原生开发】实用教程05-首页(含自定义调试模式、插入图片、图文排版、底部留白、添加本地图片)
253 0
|
关系型数据库 MySQL 数据库
在 MySQL 中使用 LIKE
【8月更文挑战第12天】
1475 1
|
SQL 人工智能 Java
Android 命令行工具简介
Android SDK 中包含了开发应用所需的多个软件包。本页列出了可供使用的最重要的命令行工具(按提供这些工具的软件包整理)。
|
存储 监控 Java
近亿级用户体量高并发实战:大促前压测干崩近百个服务引起的深度反思!
几年前,数百个服务,将堆内存从28GB升配到36GB,引发系统全面OOM的事件。
353 12
|
IDE Go 开发工具
Go Error module declares its path as but was required as解决方案
文章提供了一个解决方案,用于处理在Go工程中将依赖的仓库从A更换为B(即使它们完全相同)时遇到的路径声明错误,建议通过发布新版本来解决此问题。
299 0
|
机器学习/深度学习 存储 自然语言处理
从零开始学习Java神经网络、自然语言处理和语音识别,附详解和简易版GPT,语音识别完整代码示例解析
从零开始学习Java神经网络、自然语言处理和语音识别,附详解和简易版GPT,语音识别完整代码示例解析
379 0