目录
回复内容:
首页 后端开发 php教程 如何优化网站高并发访问?

如何优化网站高并发访问?

Jun 17, 2016 am 08:31 AM

比如双11突发大流量

回复内容:

高并发访问,后台架构关键。

解决高并发访问,或者说改善,提高一点思路:
1.使用Squid或者Varnish做缓存代理,将经常访问的图片等静态内容缓存起来,提高访问速度;
2.使用CDN内容分发网络,减少主服务器的压力(附CDN相关内容:CDN通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近);
3.使用LVS服务器负载均衡,LVS服务器结合Keepalived做高可用;
4.LVS下面还可跟Nginx做负载均衡,再次分担压力,比如淘宝使用的再Nginx基础上改进的Tnginx。
5.DNS服务器上也可下功夫,比如做高级视图等等,这样可以解决不同网段访问Web服务器的速度问题;
6.最大的瓶颈还是在IO上,比如存储IO,比如数据库的IO。存储一方面需要保证数据不丢失,另一方面需要保证性能,比如做RAID、LVM;存储还需要考虑使用一套存储之间的数据同步(GFS、OCFS可以实现),数据的备份等等;数据库的话可以考虑使用查询缓存等等,这块我也正在学习中,展开有很多东西;
7.程序的话也可以优化,比如如果是Java Web程序,并且使用了Hibernate框架,就可以考虑使用查询缓存了;
8.硬件层:比如提高带宽,购买高转数性能好的硬盘等等;

最后,就如@杨益提到的,淘宝支持那么大的并发量,并不是一蹴而就的,也是一步步走过来的,想想淘宝从什么时候成立,至今已发展多久就知道了。能把双十一撑下来,不得不佩服阿里在这方面所做的突破。

参考资料:内容分发网络_百度百科 这种问题 三言两语也说不清楚 毕竟业务不同 实际场景也不同
但是基础的思路都差不多 几乎都是一步步扩展和演变过来的
CDN 动静分离 缓存 负载均衡 高可用...几乎都离不开这些 补充 @温国兵的回答,刚刚这位大神已经从服务器架构层面回答的比较完善了。
我来说说具体服务端层面的高并发处理。
1.缓存机制,缓存机制的种类很多,有页面缓存(Squid),数据缓存(memcache),查询缓存,编译缓存(PHP是脚本语言在编译时有编译缓存).
2.数据库IO是最大问题,所以现在又了NOSQL的解决方案,首先将数据写入内存中,然后定时写入硬盘
3.程序优化,增加执行效率,用更好的算法等等。(采用分层,因为每个程序擅长处不一样,比如JAVA适合做中间层,C++做底层,现在又流行一种node.js做中间层,可以加强执行效率,多线程,以及一些安全问题)
4.队列系统,有些数据不要一来就马上处理,做个队列(先进先出),延迟处理。
如果回答不正确,请海涵,本人还在迷途中学习。 你这问题问得太大了,双11那种流量几乎没几个网站会碰到

泛泛而谈的话,其实就是找到瓶颈,优化之,找到新的瓶颈,继续优化之,如此循环反复。就连淘宝都是这么过来的

瓶颈在那里?
无状态好说,加机器各种缓存就ok。涉及到状态的scale up,scale out,适当作出某些牺牲例如一致性或者降级例如去掉确认收货点评等。

1 看来你已经有一个网站了,他是什么语言开发的?部署在什么环境里?有多少服务器?分别什么配置?
2 看来你遇到性能问题了,表现是什么?浏览器卡?死机?
3 “比如双11突发大流量”,没办法。做了这么多年双11活动了,还不是年年都被打死吗?解决这个问题唯一的办法是:双11涨价。

虽然我说技术是万能的,但是巨大的代价和每年都超预期的流量让所有人都措手不及。自己的网站优化要首先避免这个外部因素。然后技术的问题都不是问题。 ME:将js,css,img用云存储解决,WEB程序优化缓存、减化网站上功能设计上是好的实际使用中是没多大意思的功能,换固态硬盘,上好点的硬件 作为刚刚经历过双11的人,再补充一下。
其实网站技术就是那些,上面也说得比较清楚了。
我再补充一下,在双11之前都会有多轮的线上压测演练,对各个系统的性能能达到的QPS都已经摸得很清楚了。
然后根据以前的经验,会做出平时峰值接近10倍的服务器扩容。
还有各种降级预案,到关键时刻一个按钮就可以执行一堆降级功能。
到双11当天,有个大屏幕可以看到各个系统的水位(即当前QPS/极限QPS)
即便如此,一到12点,面对瞬间的巨量,每年仍然总会有几个系统当场瘫痪.... 中文的可以看看这本书---大型网站技术架构_核心原理与案例分析_李智慧 话题有点大
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1663
14
CakePHP 教程
1420
52
Laravel 教程
1313
25
PHP教程
1266
29
C# 教程
1239
24
说明PHP中的不同错误类型(注意,警告,致命错误,解析错误)。 说明PHP中的不同错误类型(注意,警告,致命错误,解析错误)。 Apr 08, 2025 am 12:03 AM

PHP中有四种主要错误类型:1.Notice:最轻微,不会中断程序,如访问未定义变量;2.Warning:比Notice严重,不会终止程序,如包含不存在文件;3.FatalError:最严重,会终止程序,如调用不存在函数;4.ParseError:语法错误,会阻止程序执行,如忘记添加结束标签。

PHP和Python:比较两种流行的编程语言 PHP和Python:比较两种流行的编程语言 Apr 14, 2025 am 12:13 AM

PHP和Python各有优势,选择依据项目需求。1.PHP适合web开发,尤其快速开发和维护网站。2.Python适用于数据科学、机器学习和人工智能,语法简洁,适合初学者。

说明PHP中的安全密码散列(例如,password_hash,password_verify)。为什么不使用MD5或SHA1? 说明PHP中的安全密码散列(例如,password_hash,password_verify)。为什么不使用MD5或SHA1? Apr 17, 2025 am 12:06 AM

在PHP中,应使用password_hash和password_verify函数实现安全的密码哈希处理,不应使用MD5或SHA1。1)password_hash生成包含盐值的哈希,增强安全性。2)password_verify验证密码,通过比较哈希值确保安全。3)MD5和SHA1易受攻击且缺乏盐值,不适合现代密码安全。

PHP行动:现实世界中的示例和应用程序 PHP行动:现实世界中的示例和应用程序 Apr 14, 2025 am 12:19 AM

PHP在电子商务、内容管理系统和API开发中广泛应用。1)电子商务:用于购物车功能和支付处理。2)内容管理系统:用于动态内容生成和用户管理。3)API开发:用于RESTfulAPI开发和API安全性。通过性能优化和最佳实践,PHP应用的效率和可维护性得以提升。

什么是HTTP请求方法(获取,发布,放置,删除等),何时应该使用? 什么是HTTP请求方法(获取,发布,放置,删除等),何时应该使用? Apr 09, 2025 am 12:09 AM

HTTP请求方法包括GET、POST、PUT和DELETE,分别用于获取、提交、更新和删除资源。1.GET方法用于获取资源,适用于读取操作。2.POST方法用于提交数据,常用于创建新资源。3.PUT方法用于更新资源,适用于完整更新。4.DELETE方法用于删除资源,适用于删除操作。

PHP:网络开发的关键语言 PHP:网络开发的关键语言 Apr 13, 2025 am 12:08 AM

PHP是一种广泛应用于服务器端的脚本语言,特别适合web开发。1.PHP可以嵌入HTML,处理HTTP请求和响应,支持多种数据库。2.PHP用于生成动态网页内容,处理表单数据,访问数据库等,具有强大的社区支持和开源资源。3.PHP是解释型语言,执行过程包括词法分析、语法分析、编译和执行。4.PHP可以与MySQL结合用于用户注册系统等高级应用。5.调试PHP时,可使用error_reporting()和var_dump()等函数。6.优化PHP代码可通过缓存机制、优化数据库查询和使用内置函数。7

解释self ::,parent ::和static :: in php oop中的区别。 解释self ::,parent ::和static :: in php oop中的区别。 Apr 09, 2025 am 12:04 AM

在PHPOOP中,self::引用当前类,parent::引用父类,static::用于晚静态绑定。1.self::用于静态方法和常量调用,但不支持晚静态绑定。2.parent::用于子类调用父类方法,无法访问私有方法。3.static::支持晚静态绑定,适用于继承和多态,但可能影响代码可读性。

PHP如何安全地上载文件? PHP如何安全地上载文件? Apr 10, 2025 am 09:37 AM

PHP通过$\_FILES变量处理文件上传,确保安全性的方法包括:1.检查上传错误,2.验证文件类型和大小,3.防止文件覆盖,4.移动文件到永久存储位置。

See all articles