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

【架构】大型网站优化技术思路相关推荐

  1. 减少HTTP请求之合并图片详解(大型网站优化技术)

    一.相关知识讲解 看过雅虎的前端优化35条建议,都知道优化前端是有多么重要.页面的加载速度直接影响到用户的体验.80%的终端用户响应时间都花在了前端上,其中大部分时间都在下载页面上的各种组件:图片,样 ...

  2. 减少HTTP请求(大型网站优化技术)

    在网站开发过程中,对于页面的加载效率一般都想尽办法求快.那么,怎么让才能更快呢?减少页面请求 是一个优化页面加载速度很好的方法.上一篇博文 我们讲解了 "利用将小图标合成一张背景图来减少HT ...

  3. 大型网站优化方案思路技巧总结

    在大型网站优化当中,SEO的术体现的并不明显.比如外链.TDK等这些基础的专业点比重是比较低的.对于大型网站的SEO优化操作更多的需要去把控好网站运营的思维来进行优化和调控,严格来说,哪怕是一个小型的 ...

  4. 基于SEO的网站优化技术研究

    基于SEO的网站优化技术研究 SEO是英文Search Engine Optimization的缩写,中文译为"搜索引擎优化".通俗的说,SEO是利用搜索引擎优化技术提高网站流量的 ...

  5. 采用合适的网站优化技术

    不久前读到一篇博文,讲述开心网存在的问题,列举了一些应该采用的网站优化技术.不得不说研究的 很有道理,博主细致并且较全面的分析了开心网的几个"缺点",我在这里也不是想要反驳那篇博文 ...

  6. 图说大型网站的技术架构

    一.大型网站的软件系统的特点 高并发,大流量 高可用 海量数据 用户分布广泛,网络情况复杂 安全环境恶劣 需求快速变更,发布频繁 渐进式发展 二.大型网站的架构演化发展历程 1.初始阶段的网站架构 最 ...

  7. 大并发服务器架构 大型网站架构演变

    服务器的三条要求: 高性能:对于大量请求,及时快速的响应 高可用:7*24 不间断,出现故障自动转移,这叫fail over(故障转移) 伸缩性:使用跨机器的通信(TCP) 另外任何网络系统结构都可以 ...

  8. 大型网站解决方案技术

    大型网站面临的问题:(网络层.服务层.应用层) >1.网站大访问量1.负载均衡(分流.轮循):思科以太网通道.Windows NLB .Linux LVS(nat(地址转化).dr) .F5和负 ...

  9. SEO技巧分享|推广运营工作中网站优化的思路分享

    网站seo优化思路: 网站优化:对网站进行优化,包括网站结构.内容.页面速度等方面,提高网站的质量和用户体验. 关键词优化:根据以上分析的关键词,对网站进行关键词优化,包括标题.描述.正文等方面,提高 ...

最新文章

  1. 跳出数据计算拯救人工智能之自然法则
  2. CNCF 新增两个孵化项目 | 云原生生态周报 Vol. 58
  3. 短融网杨夏耘:数据如何驱动金融科技业务升级?
  4. Ognl,Context,ValueStack详解
  5. 一段简单的python代码_Python趣味打怪:60秒学会一个例子,147段简单代码助你从入门到大师 | 中文资源...
  6. bzoj 4300 绝世好题 —— 思路
  7. HDU 4418 Time travel
  8. mysql数据库之单表查询
  9. GNS3(eNSP)和VMWare搭建网络学习环境
  10. 【IDEA】向IntelliJ IDEA创建的项目导入Jar包的两种方式
  11. java ee 值范围_javaEE四大作用域(共享域)
  12. Harmony OS — PageSlider滑动页面
  13. Office SharePoint Designer 2007 RTM 中文版 BT、HTTP、Emule下载
  14. pve万兆网卡驱动_无线环境下打游戏,还能不能更稳?附各类AX网卡换装思路
  15. TCP报文段首部格式
  16. 基于PHP开发的外卖订餐网站(带源码)
  17. 关于STVP写保护等级2的问题
  18. 游戏思考11:游戏服务器类型简单分类(有服务器的会讲的详细一点)
  19. python制作简易动态二维码
  20. 大连发展中韩跨境电子商务势在必行

热门文章

  1. vue组件内数值做watch监听,首次监听不到的问题
  2. 【动态规划笔记】区间dp:合并果子
  3. Flash 平台音视频直播的实现
  4. HTTP Get POST方式请求数据
  5. JavaScript Math.random()随机数函数
  6. spring mvc ajax登录验证,vuejs (前端项目) + spring mvc(后台项目),每次ajax请求都是新的session Id...
  7. c++扫雷游戏代码_C语言学习教程,用C语言编写扫雷游戏
  8. CSS中给表格的第一列及最后一列设置不同的样式
  9. JavaScript文件存储信息对象cookie编码生存期
  10. nodemcu引脚_一、ESP32开发板NodeMCU-32S简介