鬼吹灯-漫谈大型网站的架构

news/2024/5/16 18:28:54/文章来源:https://blog.csdn.net/weixin_30827565/article/details/96715067

看到很多社区的小组里头有人在讨论大型网站的架构问题,发觉这几年虽然没搞出个新浪百度出来,但是在大型系统的架构上还是有点心得,遂鬼吹一把,来谈谈大型网站的架构设计。

首先我们要明白什么算是大型网站,大型的网站有多大才叫大型?新浪、百度还是Google这般巨大?是用户数量很多,还是业务量很大。这里又分是社区类网站还是新闻类还是电子商务类的网站。

新闻类的最简单,因为大部分是静态新闻的发布,比如新浪新闻等站点(个人觉得新浪应该算是一个站点群集)。社区类的就比较复杂了,功能复杂,数据关联性大,比如天涯,猫扑一类,又或Myspace,校内等。尤其是论坛,国内论坛水风太盛,发帖量居高不下,对优化查询是很大的挑战。电子商务类的网站最大挑战来自于订单量,订单处理有很高的可靠度要求,要保证数据的绝对完整性,这样对数据库的性能肯定有要求,而处理的账务逻辑也很复杂,所以要求跟新闻类和社区类又不相同。我们在这里无法一一分析,既然是鬼吹,就和到一起说了。

 

如果老师布置的作业多做不完怎么办呢?在我小时候一般有这样的解决方案,几个同学一起做,每人负责一个科目的作业,做好互相抄,这样就只需要很少的时间就能完成。那么网站也是如此,访问量太大怎么办呢?一台服务器忙不过来肯定要几台来一起咯,于是,我们把网站的功能分一分,用户功能一台来负责,新闻栏目一台来负责,论坛功能一台来负责,下载一台来负责,所有的图片放一台,最后留一台当数据库服务器(其实应该两台,做HR热备,防止单点故障),数据库就类似最后负责抄作业的同学,把最后的答案落实到实体上(真的,小时候我就这么做的)。那么这样的方式我称之为纵向的责任分割。这样就把流量分开了。

如果 数学作业太多,一个人也做不完怎么办?一个人不够不会让两个人做啊?那么服务器一样,如果两台服务器都做同一件事情,新闻还好办,如果是论坛怎么办呢?为了动态的分配流量,我们就需要用两台或者多台服务器来做负载均衡(2003自带功能不需要另购软件)。ok,现在我的站点访问量蹭蹭蹭的就上去了。但是现在又有点问题了,一台服务器又是网页又是逻辑的,要负责的责任太重啦,跑不动了,每一台都做这么多事情那么每一台的可承载能力就下降了,为了不再增加更多的服务器,那么我们还要对职责进行一次分割。

 

这次我们要向福特学习学习,福特发明了生产流水线,每个工人只负责很少的一部分重复的工作,比如拧拧螺丝,但是生产的总体产量得到了很大提高。那么我们也要把一次访问的职责拆分开。

其实呢也就是多层架构的方式,不过这次呢,多层架构的每个层次都在不同的计算机上。如下图

 

 

这样子就能够将责任分摊在不同的计算机上了。但是有人可能会问,这样子不是每个人访问的时候响应会变慢?

那是肯定的,但是每个人慢一点点所带来的是整个网站可以容纳更多的用户,每个用户慢1秒,但是能够提高一倍的用户量的话我想大家都会算。这类方式对电子商务类的网站比较适用,对论坛啊新闻类的就不大适合了。

这种方式我称之为横向责任分割。

 

通过上面两个例子,我们用了,横纵两个方向的责任分割来达到减小每一个服务器的压力并保证系统的完整一致性。基本上几百万的PV是完全没问题的。最后为了改善客户访问的响应速度,还可以在前端通过加缓存的方式来进一步提高性能。

好了,鬼吹至此我已经语枯辞穷语无伦次了。最后感谢各位看客对我的大力支持,谢谢CCTV,感谢MTV ,感谢博客园给我这个鬼吹的机会,谢谢,谢谢大家。

 

转载于:https://www.cnblogs.com/Alexander-Lee/archive/2008/08/14/1267750.html

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

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

相关文章

www.javaei.com网站建设手记——(9)增加快捷阅读

Javaei网站除了每周的更新外,我逐步把以前的想法一点一点加到网站上去。现在考虑的是增加快捷阅读方式,并提供网站内容的整理下载。 我个人特别喜欢chm格式的电子文档和有目录的pdf文档,这类文档在左边都有一个树形目录,想看那一个…

动态网站架构案例

1》动态网站架构: LAMP(LinuxApacheMysqlPHP/Python/perl)架构是一套强大的网站解决方案,LAMP是多个开源项目的首字母缩写,LAMP网站架构主要应用于动态网站的WEB架构, 这种WEB框架具有通用,跨平台&#xff0c…

免费虚拟主机测试(手动滑稽),终于可以把自己的辣鸡网站挂上服务器了~

好的,废话不多说,先贴出自己的辣鸡网页的地址移通苑。 前言 其实这个网页做得十分糟糕,因为水平不佳的缘故,我们选择开发一个Web APP作为练习,而非直接开发app应用。我在写这篇评测的时候,还用的HTML5CSS的…

超人气网站集合,快来pick你中意的吧!

网站相对于软件来说,它不用安装就能使用,而且是随时随的就可以打开。那么接下来,就为各位分享几个我觉得很“奶思”的网站,快来pick你中意的吧!http://www.atool88.com/域名查询、链接查询,所有关于互联网方…

45个优秀的国外电子商务网站设计实例

这篇文章与大家分享45个国外优秀的电子商务网站设计案例,希望能带给你灵感。对于电子商务网站来说,也许销售更多产品比漂亮的外观设计更重要,不过漂亮的东西总是能给用户留下深刻的印象,一起欣赏。 TALBOTS Free People Armani Ex…

注册界面设计(01)——精美电子商务网站赏析

【出处】http://www.globalzoo.de/globalzoo/registrieren.php 一、效果 二、HTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.…

web 网站性能优化工具_web网站前端性能优化(一)

了解你的网站为了优化一个网站&#xff0c;你必须能够识别出需要改进的地方。这意味着要分析页面上的请求数量、页面包含的数据量以及页面加载所花费的时间。这就是开发者工具派上用场的地方。您将学习如何使用这些工具创建瀑布图&#xff0c;以及如何量化客户网站的各个方面&a…

.NET 发布网站步骤

本文章分为三个部分: web网站发布、IIS6 安装方法、ASP.NET v4.0 安装方法 一、web网站发布 1.打开 Visual Studio 2013 编译环境 2.在其解决方案上右击弹出重新生成解决方案,以查看是否有错误 3.如果项目没有错误右击WebUI层发布 4.这样将会看到以下界面 5.在配置文件中新建配…

使用Python-Flask框架开发Web网站系列课程(三)登录功能

前言 使用IDE&#xff1a;PyCharm 操作系统: Mac Python版本&#xff1a;3.6 我的邮箱:51263921qq.com 交流群: 372430835 说明&#xff1a; 本次课程github代码在最下面。 本次课程基于上个课程的代码&#xff0c;如果没看过的请先传送&#xff1a; 使用Python-Flask框架开发W…

【网站国际化必备】Asp.Net MVC 集成Paypal(贝宝)快速结账 支付接口 ,附源码demo...

【网站国际化必备】Asp.Net MVC 集成Paypal&#xff08;贝宝&#xff09;快速结账 支付接口 &#xff0c;附源码demo 原文 【网站国际化必备】Asp.Net MVC 集成Paypal&#xff08;贝宝&#xff09;快速结账 支付接口 &#xff0c;附源码demo 开篇先给大家讲段历史故事&#xff…

如何打造一个小而精的电商网站架构?

本文大纲&#xff1a; 1. 小型电商网站的架构 2. 日志与监控系统的解决方案 3. 构建数据库的主从架构 4. 基于共享存储的图片服务器架构 5. 移动M站建设 6. 系统容量预估 7. 缓存系统 一、小型电商网站的架构 刚从传统软件行业进入到电商企业时&#xff0c;觉得电商网站没有什么…

印刷行业公司网站模板

印刷行业公司网站模板是一款大气清新风格的公司类企业网站模板。 3 模板地址http://www.huiyi8.com/sc/8781.html转载于:https://www.cnblogs.com/xkzy/p/3765323.html

python 文件管理网站_Python 文件管理实例详解

本文实例讲述了Python 文件管理的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;一、Python中的文件管理文件管理是很多应用程序的基本功能和重要组成部分。Python可以使文件管理极其简单&#xff0c;特别是和其它语言相对比。以下&#xff0c;Peyton McCullough…

Python——Scrapy爬取链家网站所有房源信息

用scrapy爬取链家全国以上房源分类的信息&#xff1a; 路径&#xff1a; items.py # -*- coding: utf-8 -*-# Define here the models for your scraped items # # See documentation in: # https://doc.scrapy.org/en/latest/topics/items.htmlimport scrapyclass LianItem(sc…

IIS网站打不开错误解决方案集锦(一):编译器错误消息: 编译器失败,错误代码为 -1073741502。...

[2015-05-12解决记录] 问题&#xff1a;服务器上的文件一直都是好的&#xff0c;但是运行了很长一段时间以后&#xff0c;发现网站打不开&#xff0c;或者上传不了图片了&#xff0c;怎么办&#xff1f; 错误信息&#xff1a;c:\windows\system32\inetsrv> "C:\Windows…

html 自定义标签 seo,织梦tag标签添加自定义seo标题、关键词、描述、缩略图

最终效果特别说明添加常用多个字段适用多需求用户所有输入框都以Ajax操作&#xff0c;输入即可保存&#xff0c;快速高效缩略图支持本地上传和站内选择实现教程1、后台-系统-SQL命令行工具&#xff0c;执行ALTER TABLE #__tagindex ADD seotitle VARCHAR( 255 ) NOT NULL DEFAU…

创立3年没要投资人一分钱,没销售人员——个性定制地图网站Mapbox是如何服务900家付费客户,并养活30号员工的

2013-02-20 10:00:01来源&#xff1a; PingWest作者&#xff1a;郑珊 Shan 发布在 Demo Wall 分享 63 第一次知道MapBox是在去年Mobile-Loco大会上&#xff0c;CEO Eric Gundersen给我展示了如何用MapBox定制一张基于云的数字地图&#xff0c;当时给我留下最深印象的不是“定…

如何申请阿里云免费SSL证书(可用于https网站)并下载下来

前提条件&#xff1a;你要有阿里云的账号&#xff0c;并且要有一个域名。注意&#xff1a;阿里云系统也在不断更新&#xff0c;界面以后可能会有稍许变化&#xff0c;但是原理是相通的。 具体步骤&#xff1a; 1.登录到阿里云后台&#xff0c;并选择 “SSL证书&#xff08;应用…