【读书笔记】网站的高性能架构

news/2024/5/13 11:25:44/文章来源:https://blog.csdn.net/u013568373/article/details/91357120

前言

本菜鸡之前有过一篇读书笔记,整理了李智慧老师所著的《大型网站技术架构》一书中叙述的五个架构要素。这五个要素分别为 性能、可用性、伸缩性、扩展性、安全性本文针对性能这一要素进行展开讨论,内容也主要参考自《大型网站技术架构》这本书(一万分推荐这本书,个人认为这本书可以说是技术架构导论一样的存在了)。

性能指标

一、响应时间

指某个请求从发出到接收到响应消耗的时间。

在对响应时间进行测试时,通常采用重复请求的方式,然后计算平均响应时间。

二、吞吐量

指系统在单位时间内可以处理的请求数量,通常使用每秒的请求数来衡量。

吞吐量的几个常用量化指标:

  • TPS(每秒事务数)
  • QPS(每秒查询数)
  • HPS(每秒HTTP请求数)

三、并发数

指系统能同时处理的并发用户请求数量。

在没有并发存在的系统中,请求被顺序执行,此时响应时间为吞吐量的倒数。例如系统支持的吞吐量为 100 req/s,那么平均响应时间应该为 0.01s。

目前的大型系统都支持多线程来处理并发请求,多线程能够提高吞吐量以及缩短响应时间,主要有两个原因:

  • 多 CPU
  • IO 等待时间

使用 IO 多路复用等方式,系统在等待一个 IO 操作完成的这段时间内不需要被阻塞,可以去处理其它请求。通过将这个等待时间利用起来,使得 CPU 利用率大大提高。

并发用户数不是越高越好,因为如果并发用户数太高,系统来不及处理这么多的请求,会使得过多的请求需要等待,那么响应时间就会大大提高。

性能优化

根据网站分层架构,可分为:

  • Web前端性能优化
  • 应用服务器性能优化
  • 存储服务器性能优化

接下来将对前两种优化手段进行介绍。

Web前端性能优化

一、减少 HTTP 请求

减少 HTTP 请求可有效提高访问性能,手段主要有合并 CSS、合并 JavaScript、合并图片。

二、使用浏览器缓存

CSS、JavaScript、Logo、图标等这些静态文件不需要每次都去执行 HTTP 请求来获得。我们可以将这些文件缓存在浏览器中。通过设置 HTTP 头中 Cache-Contro l和 Expires 的属性,可设定浏览器缓存,缓存时间可以是数天,甚至是几个月。

三、启用压缩

在服务器端对文件进行压缩,在浏览器端对文件解压缩,可有效减少通信传输的数据量。

四、CSS 放在页面最上面,JavaScript 放在页面最下面

五、减少Cookie传输

因为 Cookie 包含在每次的请求和响应中,太大的 Cookie 会严重影响数据传输,因此要慎重考虑需要写入的 Cookie

六、使用 CDN、反向代理

CDN(Content DIstribute Network),内容分发网络,本质是一个缓存,它将数据缓存在离用户最近的地方(部署在离终端用户最近的网络运营商的机房),使用户以最快速度获取数据,即所谓网络访问第一跳。
在这里插入图片描述

反向代理,除了用作负载均衡、保证应用服务器安全性以外,同CDN一样,可以将数据缓存在反向代理服务器上。

在这里插入图片描述
无论是使用 CDN 还是反向代理,核心思想都是将常用的请求资源缓存起来,使得 HTTP请求不用到达应用服务器就能得到响应。

应用服务器性能优化

一、使用缓存

网站性能优化第一定律:优先考虑使用缓存优化性能。

缓存能够提高性能的原因如下:

  • 缓存数据通常位于内存等介质中,这种介质对于读操作特别快;
  • 缓存数据可以位于靠近用户的地理位置上;
  • 可以将计算结果进行缓存,从而避免重复计算

二、使用集群

将多台服务器组成集群,使用负载均衡将请求转发到集群中,避免单一服务器的负载压力过大导致性能降低。

在这里插入图片描述

三、使用异步操作

使用消息队列将调用异步化,可改善网站的扩展性,事实上使用消息队列还可以改善网站系统的性能。
在这里插入图片描述
某些流程可以将操作转换为消息,将消息发送到消息队列之后立即返回,之后这个操作会被异步处理。用户的响应延迟可以得到有效的改善。

而且消息队列具有很好的削峰作用它可以将短时间高并发产生的事务消息存储在消息队列中,从而削平高峰期的并发事务。在电子商务网站促销活动中,合理的使用消息队列,可有效抵御促销活动刚开始大量涌入的订单对系统造成的影响。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_743029.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【读书笔记】网站的高可用架构

前言 本菜鸡之前有过一篇读书笔记,整理了李智慧老师所著的《大型网站技术架构》一书中叙述的五个架构要素。这五个要素分别为 性能、可用性、伸缩性、扩展性、安全性。本文针对可用性这一要素进行简单的讨论,内容也主要参考自《大型网站技术架构》这本书…

【读书笔记】网站的伸缩性架构

前言 本菜鸡之前有过一篇读书笔记,整理了李智慧老师所著的《大型网站技术架构》一书中叙述的五个架构要素。这五个要素分别为 性能、可用性、伸缩性、扩展性、安全性。本文针对伸缩性这一要素进行简单的讨论,内容也主要参考自《大型网站技术架构》这本书…

【读书笔记】网站的可扩展架构

前言 本菜鸡之前有过一篇读书笔记,整理了李智慧老师所著的《大型网站技术架构》一书中叙述的五个架构要素。这五个要素分别为 性能、可用性、伸缩性、扩展性、安全性。本文针对扩展性这一要素进行简单的讨论,内容也主要参考自《大型网站技术架构》这本书…

【读书笔记】网站的安全架构

前言 本菜鸡之前有过一篇读书笔记,整理了李智慧老师所著的《大型网站技术架构》一书中叙述的五个架构要素。这五个要素分别为 性能、可用性、伸缩性、扩展性、安全性。本文针对安全性这一要素进行简单的讨论,内容也主要参考自《大型网站技术架构》这本书…

[导入]国内web2.0网站的logo集合

国内web2.0网站的logo集合,收集过程中难免有遗漏,请到 http://www.yupoo.com/word/web2补上甘先生 2006-02-13 18:03 文章来源:http://www.blogjava.net/gump/archive/2006/02/13/30487.html转载于:https://www.cnblogs.com/cngump/archive/2006/05/16/401486.html

[转载]说说大型高并发高负载网站的系统架构

说说大型高并发高负载网站的系统架构 By Michael转载请保留出处:俊麟 Michael’s blog (http://www.toplee.com/blog/?p71) Trackback Url : http://www.toplee.com/blog/wp-trackback.php?p71 我在CERNET做过拨号接入平台的搭建,而后在Yahoo&372…

PHP网站事件流,详解DOM事件流的三个阶段

事件发生时会在元素节点之间按照特定的顺序传播,这个传播过程即DOM事件流。DOM事件流分为三个阶段,分别为:捕获阶段:事件从Document节点自上而下向目标节点传播的阶段;目标阶段:真正的目标节点正在处理事件…

Windows 7 即将发布 - 91%的应用程序、92%的硬件设备和95%的网站完美兼容

Windows Vista的兼容性往往被大家所诟病,Windows 7打算一血前仇了。经过了长达2年的兼容性测试和改进,已经有91%的应用程序、92%的硬件设备和95%的网站完美兼容Windows 7。在这个过程中,作为微软在北京的Windows 7兼容性测试支持中心&#xf…

网站CSS背景图片抓取工具

工具介绍:  1)分析网页,获取页面图片。  2)分析网页引用CSS文件,获取背景图片。  3)批量下载。要点:  1)正则 LINK_PATTERN:获取页面所有连接 BACKGROUND_IMAGE_…

网站服务器基本安全设置

一、服务器系统安装建议1、不安装多余组件,停止不需要的服务;2、www服务单独分区;3、补丁打全;二、登录账号与口令安全1、设置密码使用、数字加大小写字母不少余8位;# vi /etc/login.defs找到以下:PASS_MAX_DAYS 99…

查看网站服务器版本,查看服务器版本

您正在运行的 Tableau Server 的版本很重要。它确定您可以访问的功能和能力。在您进行升级时,版本也很重要,因为在某些情况下,您升级的方式取决于您从中升级的版本,以及要升级到的版本。了解如何查找版本之后,就很容易…

Java开发者必去的20个英文技术网站

为什么80%的码农都做不了架构师?>>> http://www.javaalmanac.com - Java开发者年鉴一书的在线版本. 要想快速查到某种Java技巧的用法及示例代码, 这是一个不错的去处. http://www.onjava.com - OReilly的Java网站. 每周都有新文章. http://java.sun.c…

从零开始建站-4

为什么80%的码农都做不了架构师?>>> 这里记录使用wordpress建站中遇到的问题 1、增加外网访问功能 登录数据库,在wp_options表中,修改字段 siteurl 和home均为 /wordpress,这里的wordpress的绝对路径为/var/www/htm…

Dreamwear如何创建javascript_15个免费学习JavaScript的最佳网站

作者:行者转发链接:https://codegeekz.com/15-best-websites-to-learn-javascript/前言JavaScript是Web最流行的语言。对于任何Web开发人员来说,JavaScript现在是必须学习的语言。像追踪树这样的创新已经大大提高了JavaScript的性能&#xff…

5分钟必懂-搭建网站框架踩到的坑之获取ServletPath

路径问题RealPathServletPathContextPathRequestURI获取真实ServletPath的方法RealPath String realPathrequest.getServletContext().getRealPath(); String realPathrequest.getServletContext().getRealPath("XXX");1)取得服务应用的绝对路径(本地路径…

【nosql实现企业网站系列之一】mongodb的安装

本系列文章将使用Mongodb作为nosql的数据保存载体,显示载体使用aspnetmvc3,依赖注入容器使用unity application 2。 需要使用Mongodb首先需要安装。 一、下载Mongodb 地址:http://downloads.mongodb.org/win32/mongodb-win32-x86_64-2008plus…

32个使用 Google 网页字体的优秀网站案例

如今,网页设计师非常注重网页字体的运用,为了能让网站有更好的可读性和更强的吸引力,他们需要更漂亮的字体。Google网页字体(Google Web Fonts)为设计师们提供了几百种免费开源的字体,只需要在网页中加入一…

用VS2008开发Ajax网站需要注意的一些事项

这两天因为要开始网站,我们的老大说了,一定要用到mvc架构三层模式的设计,另外关于ajax的的使用部分不得少于三分之一,这样的要求还真的是很奇怪,感觉就不太像是可以用于商业的东西,大概只是想让我们练习一下…

Anonymous几天之内攻陷500多个中国网站

根据CNET的报道,Anonymous***激进组织已经在几天之内黑掉了超过500个中国政府/商业网站,并号召中国***加入他们。 The hacked Web site for the Central Business District in Chengdu, China. (Credit: Screenshot by Steven Musil/CNET)

灯鹭的简单开放,促进网站一举多赢

社会化网络作为传统平台的升级与革新,简单开放是有别于传统网站的最显著特点,如今社交媒体发展如火如荼,大量真实且活跃的用户让其成为网站流量的主要来源,很多网站运营人员一直苦于无法参与进去。据了解,目前灯鹭是国…