如何才能做到网站高并发访问?

news/2024/5/20 1:55:00/文章来源:https://blog.csdn.net/weixin_30723433/article/details/97003041

http://oldboy.blog.51cto.com/2561410/615721

 

  • MSN/QQ
    分享本资源给:MSN QQ好友
  • 论坛
    分享本资源给:论坛好友(UBB代码)
  • 开心
  • 人人
  • 豆瓣
  • 新浪微博
  • 一键收藏,随时查看,分享好友!

博主的更多文章>>

如何才能做到网站高并发访问?
2011-07-18 15:57:03
标签:高可用 高并发 网站高并发访问
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://oldboy.blog.51cto.com/2561410/615721

如何才能做到网站高并发访问?--之我荐--老男孩
#########################################################
# 如何才能做到网站高并发访问?--之我荐
#date:2011-07-18
#作者:老男孩
#QQ:31333741 MAIL:oldboy521@hotmail.com
#QQ交流群:45039636   
#blog: http://oldboy.blog.51cto.com
#psite: http://oldboy.cc(即将开放)
#pblog:http://blog.etiantian.org
##########################################################

      看了抚琴煮酒兄弟的文章http://andrewyu.blog.51cto.com/1604432/612032) 由感而发,随意谈了下高并发的一些经验,因此写了本文。
      时间短,经验有限,可能有很多语句描述不清,错别字等,如果对大家有一丝帮助,我就很开心了,欢迎大家指正!

█ 高并发网站访问的几个层次
有人会问,老说把用户对业务访问往前推,到底怎么推啊?推到哪呢?
==========================================================================》
 第一层:在用户浏览器端,使用apache的mod_deflate压缩传输,在比如:expires功能
         deflate和expires功能利用的好,就会大大提升用户体验效果及减少网站带宽,
         减少后端服务器的压力。当然,方法还有很多,这里不一一细谈了。这里的apache,还可以是Nginx,lighttpd等web服务软件。

 第二层:页面元素,如图片/js/css等或静态数据html,这个层面是网页缓存层,
         比如CDN(效果比公司自己部署squid要好,他们专业,价格低廉,比如快网/CC等
       (价格80元/M/月不到)而且覆盖的城市更多),
         自己架设squid是次选,除非是为前端CDN提供服务,以减轻后端存储压力,而不是
         直接提供服务给最终用户。

 第三层:静态服务器层一般为图片服务器,视频服务器,静态HTML服务器。
         这一层是前面缓存层和后面动态服务器层的连接纽带,大公司发布新闻
         等直接由发布人员分发到各cache节点(sina,163等都是如此),这和一
         般公司的业务可能不一样。所以,没法直接的参考模仿,比如人人的SNS。
         我们可以使用Q队列方式实现异步的分发访问,同时把动态发布数据(数
         据库中的数据)静态化存储。即放到本层访问,或通过其他办法发布到各
         cache节点,而不是直接让所有用户去访问数据库,不知道大家发现了没有,
         qq.com门户的新闻评论多的有几十万条,如果所有用户一看新闻就加载所有
         评论,那数据库不挂才怪。他们的评论需要审核(美其名约,实际是异步的
         方式,而且,评论可能都是静态化的或类似的静态化或内存cache的方式),
         这点可能就是需要51cto.com这样站点学习的,你们打开51CTO的一篇博文,
         就会发现下面的评论一直都显示出来了,也可能是分页的。不过,应该都是
        直接读库的,一旦访问量大,数据库压力大是必然。
        这里不是说51cto网站不好,所有的网站都是从类似的程序架构开始发展起来的。

 第四层:动态服务器层:php,java等,只有到这个层才可能会访问数据库。
         经过前三层的访问过滤能到这层访问就很少了,一般都是新发布的内容和新发布内容第一次浏览 如;博文
       (包括微博等),BBS帖子。

 第五层:数据库cache层,比如:memcache,memcachedb,tc等等。

 第六层:数据库层,一般的不是超大站点都会用mysql主从结构,如:163,sina,kaixin都是如此,做数据库读写分离,
         一主(或双主)多从的方式,访问大了,就拆业务好了,比如:
         再给企业做兼职时,发现类似的51cto的一个站点,把www服务,blog服务,bbs
         服务都放一个服务器上,然后做主从。这种情况,当业务访问量大了,可以简单的
         把www,blog,bbs服务分别各用一组服务器拆分开,这种方式运维都会的,没啥难度。
         当然访问量在大了,可以继续针对某一个服务拆分如:www库拆分,也可以对库里的表拆分。
         需要高可用可以通过drbd等工具做成高可用方式。对于写业务大的,可以做MYSQL REP主主的方式,
         对于ORACLE来说,来几组oracle dg就够了,玩RAC要需要更多的软、硬件价格及维护成本的,另外,一般的中高级DBA,玩好RAC也不是很容易的。
         如果到这里访问量还很大,那就恭喜了,起码是几千万以上的PV了
         当然,某些超大公司还可能用写MASTER及所谓的3个以上master环状同步,每个master在带几个SLAVE,甚至用nosql数据库。
         这些都是浮云,我们搞服务,不是看人家喊什么你就用什么,好多人网上发布的帖子只是测试的。或者不适合你的。
         网上提供的文档等,你能测试搞出来就不容易了,出问题能快速解决,这个就没法一下子学会了。而且,好多软件本来就没有大公司用过,即没有大经过大规模的高并发测试,一旦用于重要业务,出问题,后果是很严重的,这就是开源的一个弊端,没有人支持。

 第七层:其实大多数公司用NFS就够了。我所维护或经历过的上千万PV的用NFS及普通服务器做存储的还有大把,
         多一些磁盘,如SAS 15K*6的,或者用dell6850,搞几组 NFS存储,中小网站足够了。
         当然可以做成drbd+heartbeat+nfs+a/a的方式,就象就象抚琴煮酒兄弟说的。
         最可气的是一个要来我这里报名学习的月薪2000块的同学,跟我说会mfs,hadoop。。。浮云啊,浮云。
         会什么没有用的。我一直在跟所有的VIP学生强调:什么叫做会?
         在我从事的linux培训教学工作中,常常要求学生,在5分钟内完成一个模拟生产环境标准的heartbeat服务的部署。
         对于运维,我的观点是,只有在有限的时间内部署完成任务并且标准规范,才算真正会了。当然,能够全面理解原
         理并能在上线后排查故障、维护、优化就更好了。我在列几个,老男孩在培训中认为学生学习的学会的时限标准。


特殊业务,如人人,开心网,包括门户网站的评论,微博,大多都是异步的写入方式,即无论读写,并发访问数据库都是非常少量的。

     以上1-7层 都搭好了,这样漏网到 第四层 动态服务器层:的访问,就不多了。一般的中等站点,绝对不会对数据库造成太大的压力。
当然特殊的业务 还需要特殊架构,来合理利用数据库和存储。


本文是在上班时间一个字一个字敲的。要被老板骂了,赶紧收活。呵呵!

 

转载于:https://www.cnblogs.com/l1b2q31/articles/2111420.html

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

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

相关文章

Maximum.TV 发布西班牙语Silverlight TV网站

Maximum.TV 发布西班牙语Silverlight TV网站Maximum.TV(观看需要美国代理)发布了一个采用Silverlight技术开发的视频网站。 这是一个了不起的采用IIS平滑流媒体的案例。他们制作的视频墙用鼠标来确定那一个视频的声音应该播放。下边这张图上展示了同时播…

网站安装打包 新建网站[四][创建网站] 中

在IIS6.0的帮助文档中,对于创建IIS,提供了三种程序管理方法,一种是WMI,另一种是ADSI,还有一种是命令行方法。 这里,采用网上代码比较多的ADSI编程方式进行。 用C#进行ADSI编程,需要引用添加名称空间&#x…

前端开发:静态网站与动态网站的区别是什么?

很多刚入门的前端开发工程师不是很清楚静态网站与动态网站的区别,下面和千锋广州小编一起来看看吧! 静态网站只需要通过浏览器进行解析即可,因此网站建设好后可以离线打开查看,动态网站需要通过一个额外的编译解析过程&#xff0…

网站可用性测试全过程

一、何谓“可用性测试” “可用性测试”也可称之为“用户体验测试”,是通过产品功能设计测试任务,让用户按照任务完成一些真实测试,检验产品的可用性,作为产品后续改进和完善的重要参考依据。 二、为什么要进行可用性测试 1. 存在…

一个通过网站和用户名生成密码的小工具,附源码。

最近,某些网站的用户名密码遭到泄漏,对于我们用户来说,更好的管理我们的密码变得愈加重要。 登录多个网站使用同样的用户名,密码有着潜在的隐患,对不同的网站使用不同的用户名,密码又难于记忆,容…

前端工程师收藏的网站有哪些?这14个不可错过

看到有人问前端开发应该知道哪些网站,那我就来总结一下。 我先说一些程序员很通用的网站,再推荐一写前端程序员可以订阅的优质前端内容网站,如果对你有用,就点个赞呗,下面和千锋广州小编一起来看看吧! Go…

上位机软件用什么写的_为什么这么多Java开发者会觉得用Java写网站很难?

用Java写个网站?这对于不少初学者来说,感觉难于上青天,许多的工作要做,许多知识没掌握......感觉所有东西都无从下手,是不是?但是小编告诉你,其实写一个网站并不难,为什么这么说呢&a…

使用python下载网站漫画

最近想回顾一下七龙珠,结果发现腾讯已经收费,而且是按节收费,无奈看看其他网站,找到了一个网站,可以在线看,但是无法下载,最后决定使用python下载下来 首先要分析网站源码,查看源代…

如何使用代理服务器访问授权的网站_如何减少HTTP请求并加快网站访问速度?...

每当有人访问您网站上的页面时,浏览器都必须请求大量文件。这些HTTP请求直接影响网页的加载速度。通常,更少的HTTP请求意味着网站加载速度更快。 现在,网站的加载速度是搜索引擎排名的重要因素。平均而言,媒体页面加载速度为谷歌的…

seo查询工具源码_SEO工具哪个好?

SEO工具涵盖了很多种,其中主要包括站长工具、外链工具、伪原创采集工具等,不同类型的工具针对性和功能性都非常强,而且对于网站优化能够起到有效的促进作用,同时也能够使站长节省更多的时间和精力,做好网站细节优化。图…

Python+Bottle+Sina SAE快速构建网站

Bottle是新生一代Python框架的代表,利用Bottle构建网站将十分简单。 Sina SAE是国内较出名的云平台之一,十分适用于个人网站的开发或创业公司网站开发。 下面将介绍如果通过PythonBottleSina SAE快速搭建一个网站。 1.注册Sina SAE账号后,创建…

php手机论坛,网站开发-php开发手机论坛(10)-帖子列表显示

帖子列表的显示是一个基本的功能,用于首页分类的显示,以及用户收藏以及发布的帖子的查看.整合在一个文件里面.接受参数:col:收藏的帖子c:分类显示帖子post:发表的帖子rep:回复的评论templates/listview.php返回<?php echo $from ?>发帖//Chromephp::log($article);if (…

移动APP vs. 移动网站,哪一个更好?

在虚拟世界&#xff0c;关于移动应用和移动网站的有效性差异的争论是一个非常有趣的话题。无论是移动应用程序还是移动网站都有自己的优点和缺点。有一些人认为&#xff0c;一个用户友好的和有效的移动app可以解决所有的问题&#xff0c;并帮助你更好地为你的客户服务。另一方面…

Java系的大网站架构-LinkedIn和淘宝

国内私募机构九鼎控股打造APP&#xff0c;来就送 20元现金领取地址&#xff1a;http://jdb.jiudingcapital.com/phone.html 内部邀请码&#xff1a;C8E245J &#xff08;不写邀请码&#xff0c;没有现金送&#xff09;国内私募机构九鼎控股打造&#xff0c;九鼎投资是在全国股份…

【JAVA WEB教程】jsp环境搭建+部署网站(eclipse+tomcat)【详细+图文】

下载tomcat7.X下载地址为&#xff1a;http://tomcat.apache.org/download-70.cgi下载完成之后就开始安装NextI Agree选中所有的复选框输入你的用户名和密码注意&#xff1a;一定要选择JDK下面的JRE选择安装目录点击finish在eclipse中删掉原来默认的J2EE web服务器创建一个新的服…

在网站设计中非常有用的10款在线生成工具

设计和开发者社区发展飞快&#xff0c;以致于我们的步伐很难跟上发生在我们身边的这一切。这就是为什么我喜欢聚集最新发布的优秀资源和工具&#xff0c;以使我们的工作和生活更轻松。这篇文章集合了 Web 开发中会用到的优秀工具&#xff0c;我敢肯定这些你会在这里发现有用的工…

博客建站的几点思考

博客系统&#xff0c;对于一般程序员来说&#xff0c;实现权限管理、信息备份、文件上传等等都不是什么大问题。技术问题也就是几个&#xff0c;怎么做出一个PV值高的博客系统&#xff0c;很值得我们思考。 它们 网上有众多的博客系统、信息共享网站&#xff0c;它们都是很好的…

python如何跳转到网站_python中模拟登陆成功如何跳转到主页

满意答案zhuhongdi推荐于 2017.12.16采纳率&#xff1a;48% 等级&#xff1a;12已帮助&#xff1a;8240人参考这个可以了&#xff0c;http://www.bubuko.com/infodetail-699326.html#以post的方法访问登陆页面&#xff0c;访问之后cookieJar会自定保存cookieopener.open(log…

网站不收录可能是受同服务器上的挂马站牵连

这段时间ytkah接手一个网站&#xff0c;服务器放在台湾&#xff0c;访问相当不稳定&#xff0c;上面有两三百个站点。第一反应就是把网站牵回自己的服务器&#xff0c;并用帝国cms重新搭建起来&#xff0c;模板和数据不变&#xff0c;鼓捣了一阵&#xff0c;网站重新上线了。但…

石家庄铁道大学网站首页UI分析

今天的软件工程王老师讲了UI的设计&#xff0c;以前狭隘的认为只有移动设备上的界面叫UI&#xff0c;百度一下才发现UI其实有这么多含义&#xff1a;UI即User Interface的简称。泛指用户的操作界面&#xff0c;UI设计主要指界面的样式&#xff0c;美观程度。而使用上&#xff0…