分享高性能网站构架的7个方面

一、优化网站响应时间的架构方案:

网站能不能留的住用户,一方面是看内容,另一方面是看响应时间。通常有以下几个方式来降低网站响应时间:

1、减少HTTP请求。包括合并css和javascript。减少图片数量,比如利用css的偏移技术来在一个图片中选择不同的位置内容。利用浏览器的Cache功能,我们可以在头中声明是否被浏览器缓存。

2、动态内容静态化。比如永久生成HTML文件。生成静态文件并设定生存时间,到期后查询新的动态内容进行替换。

3、优化数据库。数据库的性能对于项目整体性能中是重中之重。设计良好的Mysql比乱糟糟的Mysql性能高出N个数量级,更别论再引入NOSQL了,比如Redis,MongoDB。

4、使用负载均衡。将请求合理的分发到更多服务器。

5、使用缓存。把花费时间和资源成本高昂的计算结果取出缓存起来,避免重复计算。比如在Mysql前面挡一层Memcached。比如生成一个文件,使用的时候include进来。再比如PHP中的OPCACHE等。

二、压力测试的架构方案:

吞吐率是指单位时间内处理的请求数,单位reqs/s。最大吞吐率是指单位时间内能够处理的最大请求出。模拟足够多的人数和并发请求来测试最大吞吐率的方法叫做压力测试。比如Apache自带的ab(Apache Bench)。ab的参数很多,常用的有请求数(-n),并发用户数(-c),超时时间(-t),长连接(-k),附件一个Cookie(-c name=value)

$ab -c 10 -n 1000 http://localhost/

三、长连接的架构方案 : 每次请求都需要TCP的三次握手,握手完比表示连接正式联通,之后再发送数据。那么,把N个请求,就需要3N次握手,传递N次数据,得到N次响应,总共5N。如果把N个请求合成一个请求,就是3次握手,1次传递数据,1次返回响应,共5次。但是,有时候我们需要上一次响应的返回结果来发送新一轮的请求,在这个时候,合并请求并不好实现,这就需要长连接。使用起来很简单,在头中包含如下:

Connection: Keep-Alive

客户端和服务器端都可以设置长连接的最大时间,当两者不统一时以小的一方为准。开启长连接后进行压力测试:

发现提升不止三五倍。本机是提升了8倍的性能。

四、提高Mysql的响应速度的架构方案 : Handlerocker是日本的一位架构师开发。Mysql的一种插件。Handlerocker实现了绕过Mysql的SQL解析层。在Mysql5.1以上版本可以使用,详情可以查看Mysql手册。这里就不在阐述。

五、Mysql主从复制的架构方案 : 在分布式部署中,1台主库,N台从库。主库只写,从库只查。主库从库数据需要实现统一,这就是主从复制。

优点是: 1、从库备份时,主库可以继续处理更新。

2、优化响应时间。 3、增加健壮性。主库挂了可以切换到从库作为备份。 主从复制的实现过程有三步,1个在主库,2个在从库:

1、主库服务器将用户对数据库更新的操作以二进制格式保存到Binary Log日志文件。然后Binlog Dump线程将Binary Log日志文件传输给从库服务器。

2、从库服务器通过一个I/O线程将主库服务器的Binary Log日志文件中的更新操作复制到一个叫做Relay Log中的中继日志文件中。

3、从库服务器通过另一个SQL线程Relay Log中继日志文件中的操作依次在本地执行,从而实现主从数据库之间数据的同步。 本篇只是简单的列出方案,详细的配置和实现步骤将在另一篇中写到。

六、代理的架构方案 : 读取内存的速度是读取硬盘的100000-1000000倍。把访问过的页面缓存在内存中,下次直接从内存中读取,可以有效加速。 1、传统代理。客户端发送请求给代理服务器,代理服务器向WEB服务器取到数据并返回给浏览器。代理服务器就是一个有大的存储空间的Cache。 2、反向代理。和传统代理原理类似,只是使用对象不同。传统代理的使用对象是客户端,反向代理的使用对象是服务器。用户通过反向代理访问Web服务器,Web服务器是隐藏起来的。不过用户不关心这些,权把代理服务器当作真实的Web服务器。反向代理有Vamish。

七、异步计算的架构方案 : 比较耗时的比如将用户上传的文件分发到多台机器,比如裁剪图片,视频转码等。可以使用异步方案。让用户无须等待计算结束而是先行返回结果。代表产品有和Memcache同一家的Gearman。关于Gearman的使用可以查看PHP手册。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:SEO优化专员,转转请注明出处:https://www.chuangxiangniao.com/p/891825.html

(0)
上一篇 2025年1月3日 23:27:51
下一篇 2025年1月3日 23:28:36

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 如何创建一个个人网站

    今天来给大家介绍一下怎么建站,网站建设其实很容易的,首先你得需要买一个虚拟主机,然后还需要一个域名。那么主机和域名要去哪里买呢?可以去百度云,阿里云,还可以去景安。下面就来用景安做一下介绍吧。     1.首先需要购买一个主机,主机有很多类…

    2025年1月4日 建站经验
    100
  • 建站经验分享:选择和部署安装网站平台系统

    选择和部署安装网站平台系统 “网站平台”系统是指您的网站使用哪一种平台,是博客平台,还是企业 CMS平台,是论坛平台,还是 APP数据平台等,这个应该是您在网站建立前就应该考虑的。普通个人博客都是博客平台,常见的有 WordPress, T…

    建站经验 2025年1月4日
    100
  • 建站经验分享:建站前分析和工具准备

    1、准备 ①域名 购买域名及套餐。常用com,cn,net。域名尽量贴近品牌,拼音或者英文,尽量不要用中文。合理使用老域名,规避被惩罚域名。 ②空间 存放网站的空间。可以买实体主机/租虚拟主机。注意主机稳定性,安全性。 ③程序 外包、自主开…

    建站经验 2025年1月4日
    100
  • 构建互联网高性能WEB系统经验总结

    互联网发展至今各种应用层出不穷,用户量动辄上亿。所以如何构建一个优秀的高性能、高可靠的应用系统对每一个开发者至关重要。本文将我所学到和在工作中使用到的一些方法归纳总结,希望给其他同学起到一些借鉴作用,在以后的开发中遇到类似的问题,能快速的找…

    建站经验 2025年1月4日
    100
  • 浅谈网站建设中容易忽略的重要细节

    网站建设是一件技术性很强的事情,并不是像你想的那样只要用一些代码加上一些图片就可以搞定,如果网站建设不当的话,很有可能不被搜索引擎收录,这样你所建设的网站就是一个垃圾网站。在进行网站建设的过程中,大家都比较容易忽视但是有非常重要的就是网站的…

    2025年1月4日
    100
  • 动态网站和静态网站应该如何去选择

    网站SEO优化优哪种网站更利于优化呢?静态网页是相对于动态网页而言,是指没有后台数据库、不含程序和不可交互的网页。你编的是什么它显示的就是什么、不会有任何改变。静态网页相对更新起来比较麻烦,适用于一般更新较少的展示型网站。在网站设计中,纯粹…

    建站经验 2025年1月4日
    100
  • 为什么有些网站前面不加WWW?网站加和不加WWW有什么不同

    很久以前,并不明白网站前面”www”是什么含义。无论我通过哪个域名访问,都将转向到后者上,就是域名前面多了一个 “www”。 大约到了最近,Michael F Liu就号召大家把域名前面的www去掉,我深以为然。好域…

    2025年1月4日 建站经验
    300
  • 网易蜂巢Docker容器的负载均衡设置教程

    关于负载均衡 负载平衡(Load balancing)是一种计算机网络技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。 使用带有…

    2025年1月4日 建站经验
    300
  • 简单总结Hadoop和Spark集群技术的不同点

    谈到大数据,相信大家对Hadoop和Apache Spark这两个名字并不陌生。但我们往往对它们的理解只是提留在字面上,并没有对它们进行深入的思考,下面不妨跟我一块看下它们究竟有什么异同。 解决问题的层面不一样 首先,Hadoop和Apac…

    建站经验 2025年1月3日
    100
  • 网站总是出现500错误怎么解决?

    网站出现了500错误,找了半天原因,发现是服务器密码变了,导致网站出现了500错误。 在解决方法中,给我印象最深刻的是我修改了服务器密码后网站打不开了,我记得当时改了3个钟头,所有的方法都试过了,还是不行,最后终于找到原因,原来是改变了服务…

    2025年1月3日 建站经验
    100

发表回复

登录后才能评论

联系我们

156-6553-5169

在线咨询: QQ交谈

邮件:253000106@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

联系微信