传统高并发网站入门级解决方案

不涉及具体技术,都是烂大街的东西,只是简单总结一下。

1 前端域名分流

不同的内容从不同的域名的服务器获取。值得注意的是,cookie不能跨域名访问。

主域名下会产生一些cookie,通过不同的静态文件,比如图片,JS等,通过其他域名访问获取,可以节约cookie产生的流量。

2 页面静态化

频繁需要从数据库中查询的数据需要显示在网页中。直接在服务器端生成html静态页面。访问直接请求html文件。

3 CDN

CDN一般都只应用于静态资源。解决空间线路问题。

中心服务器发布资源,然后分发给CDN服务器。客户端的请求通过DNS解析到离客户端线路最近服务器的IP地址。

4 静态文件压缩与合并

js css等文件使用代码压缩工具进行压。

css sprite是一种典型的合并方案。将小图片合并到一起,显示图片时,通过CSS显示大图片的一小部分。

5 分离思想

同一件事的不同细节使用不同组件程序实现,完成功能的分离。比如:

  • 上传与下载分离。
  • 消耗资源(CPU或内存)的程序与web服务器分离。
  • 数据库读写分离。

分离是架构设计中非常重要的思想。这里就不多说了。

6 缓存

缓存是提升性能最有效的方法。

对于准实时的数据可以通过缓存降低数据库的访问压力。

7 全文检索

对于大型网站,站内搜索一定不能用数据库的like搜索。like效率低下,而且会造成全表扫描,消耗数据库资源。

使用倒排索引与分词技术可以实现高速文本搜索。

搜索功能一般使用专用的搜索服务程序来实现,比如非常著名的Solr。

8 负载均衡

负载即计算机的资源被消耗。计算机资源一般指的的就是CPU资源,内存资源,磁盘资源,网络IO资源。

将资源的消耗分担给多个计算机来处理即负载均衡。而多个计算机连接后的计算机组即计算机集群。

而负载均衡也被分为硬负载均衡与软负载均衡。

我们常说的负载均衡一般指的都是网络IO的负载均衡。具体的技术非常多,LVS,Nginx,智能DNS等等,都可以对网络IO负载有效的分流。

9 一些特殊模式的解决方案

秒杀场景

1 数据库锁(不可行)

2 “二阶段处理”,记录大量用户提交的请求。之后统计这些请求的排在前面的用户。

3 使用Redis的List排队。

文章阅读数

1 数据库表锁

2 “二阶段处理”,每阅读一次文章,记录增加一条,使用一个计算条数的程序定时统计文章的被阅读数量。

3 使用Redis的key-value实现。

以上特殊场景在具体环境下肯定有更好的解决方案。

10 云计算

这是个颠覆性的技术,这是个云计算的时代,几乎所有人都在谈论云计算。云计算到底意味着什么?

云计算的本质即以虚拟机为基础,当负载较大时,可以快速启动一些虚拟机,实现负载均衡;而当负载较小时,可以放弃掉一些虚拟机以解决资源。

云计算的真正意义在于把计算资源变成一种真正可以被计费的资源,就像家中的自来水,当需要的时候,增大阀门,使用更多的资源,当不需要的时候,关小阀门即可。

有句话说的好,云计算让低端网管失业。

------------------------------------------------------------------------------------------

话题太大,有空再扩充。

时间: 2024-10-14 05:07:41

传统高并发网站入门级解决方案的相关文章

高并发的成熟解决方案

课程来自传智播客 上官云老师 课程名称:企业高并发的成熟解决方案 案例来自:阿里巴巴研究院 分析企业架构 负载均衡服务器: 1.转发请求 2.还有... 负载均衡服务器种类: 反向代理服务器 并发分为两个地方: 1.负载均衡服务器高并发 2.数据库高并发 第一步解决负载均衡服务器 出现在此处的问题: 如果用户登录了,session是如何共享的? 用户请求1号机的时候产生了session 用户在请求2号机的时候就没有session了 产生的结果就是:用户被剔除登录后页面 解决方案: 1.把用户的s

从12306说起 大型高并发网站架设

[IT168 评论]2012年春节,铁道部推出12306网站,进行网络实名购票.每一个返乡人原以为不用再忍冻排队,就能买着一张回家的火车票,但结果还是大失所望.7天内,12306网站访问用户已占全球互联网用户的0.902%,每天点击量高达10亿人次;系统一度支撑不住如此庞大的访问量而陷入崩溃.针对12306的责难也不绝于耳. 面对12306,人们发表种种猜想,究竟是哪里有问题引起了大家的兴趣,IT168也特意邀请了网站架构方面的专家-ITpub资深版主丁昊和腾讯架构平台部刘天斯,跟我们一起聊聊1

浅谈千万级PV/IP规模高性能高并发网站架构(转自老男孩)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://oldboy.blog.51cto.com/2561410/736710 如果把来访用户比作来犯的"敌人",我们一定要把他们挡在800里地以外,即不能让他们的请求一下打到我们的指挥部(指挥部就是数据库及分布式存储). 如:能缓存在用户电脑本地的,就不要让他去访问CDN. 能缓存CDN服务器上的,就不要让CDN去访问源(静态服务器)了.能访问静态服务器的,就不要去访问动态

高负载、高并发网站架构知识汇总-大流量网站架构的几点认识

:硬架构 1:机房的选择: 在 选择机房的时候,根据网站用户的地域分布,可以选择网通或电信机房,但更多时候,可能双线机房才是合适的.越大的城市,机房价格越贵,从成本的角度看可以 在一些中小城市托管服务器,比如说广州的公司可以考虑把服务器托管在东莞,佛山等地,不是特别远,但是价格会便宜很多. 2:带宽的大小: 通常老板花钱请我们架构网站的时候,会给我们提出一些目标,诸如网站每天要能承受100万PV的访问量等等.这时我们要预算一下大概需要多大的带宽,计算带宽大小主要涉及两个指标(峰值流量和页面大小)

实战经验:MySQL 构建高并发网站性能优化

最近在优化一个比较大型的高并发网站,收益颇多,经验分享给大家. 1. 表字段分割.经常访问的表.行数量大的表,切记保持最少长度字段,不在select列表的数据,请做垂直分割.举例:文章表,不要将文章正文部分的内容存在文章信息表里,可以将这个字段独立存储到另一张表articleContent(articleID,articleContext).因为这个字段长度大,影响查询时的行扫描. 2. 频繁更新的字段做表的垂直分割.在做更新操作时,一般会做行锁定,有的会设置成表锁定.那么在做query的时候,

关于大型高并发网站架构以及数据库集群的一些问题

2014年6月11日,正在办理离职交接过程中,对未来的职业规划陷入了一些困境,想要专门从事管理工作,但是在任职期间所执行的管理工作仅仅属于team leader级别的,离项目经理感觉能力还有差距.对技术方面,总是有着难以克制的热情,多年的企业应用开发,锻炼了将需求转化为程序逻辑的能力.可对当下比较吃香的大型网站架构以及数据库集群技术,接触甚少.这也让我一直心有芥蒂,总想向着这个方向去探索.我想,如果想要成为一个好的架构师,这些事情如果不接触,你都不好意思跟人说你会做系统架构吧. IT给人的感觉就

(转)浅谈千万级PV/IP规模高性能高并发网站架构

浅谈千万级PV/IP规模高性能高并发网站架构 原文:http://blog.51cto.com/oldboy/736710 文章架构简图:   高并发访问的核心原则其实就一句话"把所有的用户访问请求都尽量往前推". 如果把来访用户比作来犯的"敌人",我们一定要把他们挡在800里地以外,即不能让他们的请求一下打到我们的指挥部(指挥部就是数据库及分布式存储). 如:能缓存在用户电脑本地的,就不要让他去访问CDN. 能缓存CDN服务器上的,就不要让CDN去访问源(静态服务

Web网站高并发量的解决方案

摘要: ??一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构.性能的要求都很简单.随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件.编程语言.数据库.WebServer.防火墙等各个领域都有了很高的要求,已经不是原来简单的html静态网站所能比拟的.??大型网站,比如门户网站,在面对大量用户访问.高并发请求方面,

千万级PV规模高性能高并发网站架构

防伪码:好久不见,你会不会突然的出现. 客户端:缓存(expires).deflate压缩 缓存服务器:CDN/cache缓存静态内容如:html.jpg.gif.js等 静态web服务器:Apache/nginx静态服务器提供html页面内容 php/java服务器:PHP/JAVA动态内容 数据库缓存服务器:数据库缓存memcache/redis 数据库服务器:MYSQL数据库 数据存储:NFS/HADOOP等 高并发访问的核心原则其实就一句话"把所有的用户访问请求都尽量往前推".