【架构】大型网站优化技术思路
1、I/O优化
1、增加缓存,减少磁盘的访问次数。
2、优化磁盘的管理系统,设计最优的磁盘方式策略,以及磁盘的寻址策略,这是在底层操作系统层面考虑的。
3、设计合理的磁盘存储数据块,以及访问这些数据库的策略,这是在应用层面考虑的。例如,我们可以给存放的数据设计索引,通过寻址索引来加快和减少磁盘的访问量,还可以采用异步和非阻塞的方式加快磁盘的访问速度。
4、应用合理的RAID策略提升磁盘I/O。
2、Web前端调优
1、减少网络交互的次数(多次请求合并)。
2、减少网络传输数据量的大小(压缩),比如优化图片大小,压缩js,css文件大小。
3、尽量减少编码(尽量提前将字符转化为字节,或者减少从字符到字节的转化过程。)
4、使用浏览器缓存。
5、减少Cookie传输。
6、合理布局页面。
7、使用页面压缩(gzip)。
8、延迟加载页面。
9、CSS在最上面,JS在最下面。
10、CDN缓存静态内容,提高响应速度。
11、反向代理
12、页面静态化
13、异地部署
3、服务降级(自动优雅降级)
拒绝服务和关闭服务
4、幂等性设计
有些服务天然具有幂等性,比如讲用户性别设置为男性,不管设置多少次,结果都一样。但是对转账交易等操作,问题就会比较复杂,需要通过交易编号等信息进行服务调用有效性校验,只有有效的操作才能继续执行。
(注:幂等性是系统的接口对外一种承诺(而不是实现), 承诺只要调用接口成功, 外部多次调用对系统的影响是一致的. 声明为幂等的接口会认为外部调用失败是常态, 并且失败之后必然会有重试.)
5、负载均衡技术
HTTP重定向负载均衡
当用户发来请求的时候,Web服务器通过修改HTTP响应头中的Location标记来返回一个新的url,然后浏览器再继续请求这个新url,实际上就是页面重定向。通过重定向,来达到“负载均衡”的目标。例如,我们在下载PHP源码包的时候,点击下载链接时,为了解决不同国家和地域下载速度的问题,它会返回一个离我们近的下载地址。重定向的HTTP返回码是302。
优点:比较简单。
缺点:浏览器需要两次请求服务器才能完成一次访问,性能较差。重定向服务自身的处理能力有可能成为瓶颈,整个集群的伸缩性国模有限;使用HTTP302响应码重定向,有可能使搜索引擎判断为SEO作弊,降低搜索排名。DNS域名解析负载均衡
DNS(Domain Name System)负责域名解析的服务,域名url实际上是服务器的别名,实际映射是一个IP地址,解析过程,就是DNS完成域名到IP的映射。而一个域名是可以配置成对应多个IP的。因此,DNS也就可以作为负载均衡服务。
事实上,大型网站总是部分使用DNS域名解析,利用域名解析作为第一级负载均衡手段,即域名解析得到的一组服务器并不是实际提供Web服务的物理服务器,而是同样提供负载均衡服务的内部服务器,这组内部负载均衡服务器再进行负载均衡,将请求分发到真是的Web服务器上。
优点:将负载均衡的工作转交给DNS,省掉了网站管理维护负载均衡服务器的麻烦,同时许多DNS还支持基于地理位置的域名解析,即会将域名解析成举例用户地理最近的一个服务器地址,这样可以加快用户访问速度,改善性能。
缺点:不能自由定义规则,而且变更被映射的IP或者机器故障时很麻烦,还存在DNS生效延迟的问题。而且DNS负载均衡的控制权在域名服务商那里,网站无法对其做更多改善和更强大的管理。反向代理负载均衡
反向代理服务可以缓存资源以改善网站性能。实际上,在部署位置上,反向代理服务器处于Web服务器前面(这样才可能缓存Web相应,加速访问),这个位置也正好是负载均衡服务器的位置,所以大多数反向代理服务器同时提供负载均衡的功能,管理一组Web服务器,将请求根据负载均衡算法转发到不同的Web服务器上。Web服务器处理完成的响应也需要通过反向代理服务器返回给用户。由于web服务器不直接对外提供访问,因此Web服务器不需要使用外部ip地址,而反向代理服务器则需要配置双网卡和内部外部两套IP地址。
优点:和反向代理服务器功能集成在一起,部署简单。
缺点:反向代理服务器是所有请求和响应的中转站,其性能可能会成为瓶颈。LVS-NAT:修改IP地址
LVS-TUN: 一个IP报文封装在另一个IP报文的技术。
LVS-DR:将数据帧的MAC地址改为选出服务器的MAC地址,再将修改后的数据帧在与服务器组的局域网上发送。
6.避免重定向
7.减少DNS查询次数
8. 代码优化
提高代码质量,减少重复代码,使用效率更高的算法,少使用递归。
转载于:https://www.cnblogs.com/songgj/p/10357480.html
【架构】大型网站优化技术思路相关推荐
- 减少HTTP请求之合并图片详解(大型网站优化技术)
一.相关知识讲解 看过雅虎的前端优化35条建议,都知道优化前端是有多么重要.页面的加载速度直接影响到用户的体验.80%的终端用户响应时间都花在了前端上,其中大部分时间都在下载页面上的各种组件:图片,样 ...
- 减少HTTP请求(大型网站优化技术)
在网站开发过程中,对于页面的加载效率一般都想尽办法求快.那么,怎么让才能更快呢?减少页面请求 是一个优化页面加载速度很好的方法.上一篇博文 我们讲解了 "利用将小图标合成一张背景图来减少HT ...
- 大型网站优化方案思路技巧总结
在大型网站优化当中,SEO的术体现的并不明显.比如外链.TDK等这些基础的专业点比重是比较低的.对于大型网站的SEO优化操作更多的需要去把控好网站运营的思维来进行优化和调控,严格来说,哪怕是一个小型的 ...
- 基于SEO的网站优化技术研究
基于SEO的网站优化技术研究 SEO是英文Search Engine Optimization的缩写,中文译为"搜索引擎优化".通俗的说,SEO是利用搜索引擎优化技术提高网站流量的 ...
- 采用合适的网站优化技术
不久前读到一篇博文,讲述开心网存在的问题,列举了一些应该采用的网站优化技术.不得不说研究的 很有道理,博主细致并且较全面的分析了开心网的几个"缺点",我在这里也不是想要反驳那篇博文 ...
- 图说大型网站的技术架构
一.大型网站的软件系统的特点 高并发,大流量 高可用 海量数据 用户分布广泛,网络情况复杂 安全环境恶劣 需求快速变更,发布频繁 渐进式发展 二.大型网站的架构演化发展历程 1.初始阶段的网站架构 最 ...
- 大并发服务器架构 大型网站架构演变
服务器的三条要求: 高性能:对于大量请求,及时快速的响应 高可用:7*24 不间断,出现故障自动转移,这叫fail over(故障转移) 伸缩性:使用跨机器的通信(TCP) 另外任何网络系统结构都可以 ...
- 大型网站解决方案技术
大型网站面临的问题:(网络层.服务层.应用层) >1.网站大访问量1.负载均衡(分流.轮循):思科以太网通道.Windows NLB .Linux LVS(nat(地址转化).dr) .F5和负 ...
- SEO技巧分享|推广运营工作中网站优化的思路分享
网站seo优化思路: 网站优化:对网站进行优化,包括网站结构.内容.页面速度等方面,提高网站的质量和用户体验. 关键词优化:根据以上分析的关键词,对网站进行关键词优化,包括标题.描述.正文等方面,提高 ...
最新文章
- 跳出数据计算拯救人工智能之自然法则
- CNCF 新增两个孵化项目 | 云原生生态周报 Vol. 58
- 短融网杨夏耘:数据如何驱动金融科技业务升级?
- Ognl,Context,ValueStack详解
- 一段简单的python代码_Python趣味打怪:60秒学会一个例子,147段简单代码助你从入门到大师 | 中文资源...
- bzoj 4300 绝世好题 —— 思路
- HDU 4418 Time travel
- mysql数据库之单表查询
- GNS3(eNSP)和VMWare搭建网络学习环境
- 【IDEA】向IntelliJ IDEA创建的项目导入Jar包的两种方式
- java ee 值范围_javaEE四大作用域(共享域)
- Harmony OS — PageSlider滑动页面
- Office SharePoint Designer 2007 RTM 中文版 BT、HTTP、Emule下载
- pve万兆网卡驱动_无线环境下打游戏,还能不能更稳?附各类AX网卡换装思路
- TCP报文段首部格式
- 基于PHP开发的外卖订餐网站(带源码)
- 关于STVP写保护等级2的问题
- 游戏思考11:游戏服务器类型简单分类(有服务器的会讲的详细一点)
- python制作简易动态二维码
- 大连发展中韩跨境电子商务势在必行
热门文章
- vue组件内数值做watch监听,首次监听不到的问题
- 【动态规划笔记】区间dp:合并果子
- Flash 平台音视频直播的实现
- HTTP Get POST方式请求数据
- JavaScript Math.random()随机数函数
- spring mvc ajax登录验证,vuejs (前端项目) + spring mvc(后台项目),每次ajax请求都是新的session Id...
- c++扫雷游戏代码_C语言学习教程,用C语言编写扫雷游戏
- CSS中给表格的第一列及最后一列设置不同的样式
- JavaScript文件存储信息对象cookie编码生存期
- nodemcu引脚_一、ESP32开发板NodeMCU-32S简介