大型互联网网站架构心得[转]

news/2024/5/13 13:41:06/文章来源:https://blog.csdn.net/weixin_30530523/article/details/98749692





我们知道,对于一个大型网站来说,可伸缩性是非常重要的,怎么样在纵向和横向有良好的可伸缩性,就需要在做架构设计的时候考虑到一个分的原则,我想在多个方面说一下怎么分:

首先是横向的分:
1. 大的网站化解为多个小网站:当我们一个网站有多个功能的时候,可以考虑把这个网站拆分成几个小模块,每一个模块可以是一个网站,这样的话我们到时候就可以很灵活地去把这些网站部署到不同的服务器上。
2. 静态动态分离:静态文件和动态文件最好分离开成2个网站,我们知道静态网站和动态网站对服务器来说压力的侧重不同,前者可能重IO后者重CPU,那么我们在选择硬件的时候也可以有侧重,而且静态和动态内容的缓存策略也不一样。典型的应用,我们一般会有独立的文件或图片服务器。而且,使用不用的域名还可以提高浏览器并行加载的能力。
3. 按照功能来分:比如有一个模块是负责上传的,上传操作很消耗时间,如果和其它应用混在一起的话很可能,一点点访问就会使服务器瘫痪,这种特殊的模块应该分开。安全的不安全的也要分开,还需要考虑到以后SSL的购买。
4. 我们不一定要全部用自己的服务器,搜索、报表可以依靠别人的服务,比如google的搜索和报表服务,自己做的不一定比得过别人,服务器带宽都省了。


其次是纵向的分:
1. 文件也相当于数据库,IO的流量可能比数据库还大,这也算是纵向级别的访问,上传的文件图片一定要和WEB服务器分开。当然,数据库和网站都放在一个服务器上的很少了,这是最基本的。
2. 对于涉及到数据库访问的动态程序来说,我们可以使用一个中间层(所谓的应用层或逻辑层)来访问数据库(部署在独立的服务器上),最大的好处就是缓存和灵活性。缓存的内存占用比较大,我们要把它和网站进程分开,而且这样做我们可以很方便的去改变一些数据访问的策略,即使到时候数据库有分布的话在这里可以做一个调配工作,这样灵活性就很大了。还有好处是中间层可以做电线网通桥梁,可能网通访问双线再访问电信会比网通直接访问电信服务器快。


有人说我不分,我可以做负载均衡,对,是可以的,但是如果分的话,同样的10台机器肯定比不分10台机器可以承受更多的访问量,而且对硬件的需求可能不会很高,因为知道需要哪个硬件特别好。争取让每一个服务期都不空闲,又都不是太忙,合理进行组合调整和扩充,这样的系统伸缩性就高了,能根据访问量来调整的前提就是之前有考虑到分,分的好处是灵活性、伸缩性、隔离性以及安全性。

对服务器来说,我们有几点是要长期观察的,任何一点都可能是瓶颈:
1. CPU:动态文件的解析需要比较多的CPU,CPU出现瓶颈就要看是不是哪个功能过长时间占用线程,如果是就分出去。或者就是每一个请求处理时间不长,但是访问量很高,那么就加服务器。CPU是好东西,不能让他干等,不做事情。
2. 内存:缓存从IIS进程独立出去,一般对WEB服务器来说内存不够的情况不是很多。内存比磁盘快,要合理利用。
3. 磁盘IO:用性能监视器找到哪些文件IO特别大,找到了就分到独立的一组文件服务器上去,或者直接做CDN。磁盘慢,大规模读取数据的应用靠缓存,大规模写入数据的应用可以靠队列来降低突发的并发。
4. 网络:我们知道,网络的通讯是比较慢的,比磁盘还慢,如果是做分布式缓存,分布式计算的话,要考虑到物理服务器之间网络通讯的时间,当然,在流量大了以后,这可以提高系统的接纳能力一个等级。静态内容可以借助CSD分担一部分,在做服务器假设的时候还要考虑中国特色的电信网通情况以及防火墙。

对SQL SERVER数据库服务器来说[UPDATE]:
其实还是水平分割和纵向分割,一个二维表,水平分割就是横过来切一刀,纵向分割就是竖直切一刀:
1、纵向分割就是,我们不同的应用可以分到不同的DB中,不同的实例中,或者说把某个拥有很多字段的表拆分成小表。
2、横向分割就是,某些应用可能不负载,比如用户注册,但是用户表会非常大,可以把大表分开。可以采用表分区,数据存储在不同文件上,然后再部署到独立物理服务器增加IO吞吐以改善读写性能,土一点的做法就是自己定期把老的数据存档。表分区的另外一个优势可以增加数据查询速度,因为我们的页索引可以有多层了,就像一个文件夹中的文件不要太多,多分几层文件夹一样。
3、还可以通过数据库镜像、复制订阅、事物日志,把读写分开到不同的镜像物理数据库上,一般来说够用,如果还不行可以用硬件来实现数据库的负载均衡。当然,对于BI,我们可能还会有数据仓库。

架构上考虑到了这些之后,流量大了,就可以在这个的基础上再去调整或者做WEB服务器或者应用服务器的负载均衡。很多时候我们都是在重复发现问题-》找到瓶颈-》解决这个过程。

典型的架构如下:


动态WEB服务器配好点的CPU,静态WEB服务器和文件服务器磁盘好点
应用服务器内存大点,缓存服务器也是,数据库服务器当然内存和CPU都要好

文章出处:http://www.cnblogs.com/lovecherry/archive/2008/06/18/1224496.html

 

转载于:https://www.cnblogs.com/zhangzt/archive/2010/09/17/1829463.html

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

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

相关文章

机器学习(七)-基于KNN分类的约会网站配对改进算法

基于KNN分类的约会网站配对改进算法1 项目介绍2 准备数据:从文本文件中解析数据3 分析数据:使用 Matplotlib 创建散点图4 准备数据:归一化数值4 实施 kNN 算法5 测试算法:作为完整程序验证分类器6 使用算法:构建完整可用的预测系统完整代码1 项目介绍 某APP用户一直使用在线约…

推荐一个类似于国内知乎国外网站-Quora

好像是在知乎上随意浏览时中看到Quora这个社区的,模糊的记得知主当时给的评价是Quora上有很多大咖,职业遍布各个领域,对一些问题的看法比较新颖,还可以这么说,足不出户就可以感受到贴切的英语环境。抱着好奇的心里就登…

分享45个海量免费电子书下载网站

随着网络和信息技术的快速发展,电子书越来越流行。以Amazon Kindle为代表的电子书阅读器的出现改变了人们传统的阅读方式,如同iPod改变人们听音乐一样。如今,很多网上书店也推出了电子书商品,相比传统的纸质书,电子书便…

使用Trie树实现网站对用户输入的敏感词打码

使用Trie树实现网站对用户输入的敏感词打码 什么是Trie树? Trie树,又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串&…

从HTML到XHTML--使用Web标准建设网站 《转》

转自http://ysearchblog.cn/2006/08/htmlxhtmlweb_1.html 从HTML到XHTML--使用Web标准建设网站(一) 作者:张克军 用户体验部 小编按:最近看到搜索日志上有不少朋友对雅虎的网页设计模式感兴趣,我们的设计师张克军也不禁手痒,和大家…

Three.js_环境的搭建_搭建本地官方网站

Three.js – JavaScript 3D Library 去官网下载 Three.js引擎的包 下载 VSCode 代码编辑器 Download Visual Studio Code - Mac, Linux, Windows 安装好后导入 下载好的 three.js 的引擎包 安装本地官网 VSCode里右键"在集成终端中打开" 输入 指令 npm install …

QuickWAP 2005让WAP网站拥有更好的兼容性

QuickWAP 2005让WAP网站拥有更好的兼容性 很多利用WML或ASPWML编写的WAP程序是必须利用手机或手机模拟器去浏览的,即使有些站点做了适配,也不过是利用调转指令将用户引导到其它网页而已。另一种兼容性的方法如双模网站,即一套站点同时做WAP和…

简体中文化的 Slax-ChineseOptimized

上次说到安装Slax后不直接支持中文,也有几个Linux喜爱者"辩驳"了下,说我没有去细致的研究,确实,像我这样在MS平台上用的比较多的一下子也没有那么多时间去研究,所以只有先直接拿来用了 Slax-Chi…

ASP.NET MVC3书店--第十节 为网站导航与局部设计做最后的修改(转)

http://blog.sina.com.cn/s/blog_6ad539a90100rc4n.html现在我们已经完成了这个网站中的主要功能。但我们还需要为整个网站的导航,首页与书籍列表页面做一点最终的修改。 10.1 创建购物摘要分部视图 首先,我们想要在整个网站中显示用户购物车中的书籍…

11个超炫的视差滚动网站欣赏

目前这种视差滚动效果被越来越多的国内外网站所应用,成为网页设计的热点趋势。 通过一个很长的网页页面,其中利用一些令人惊叹的插图 和图形,并使用视差滚动(Parallax Scrolling)效果,让多层背景以不同的速…

Avast!:小型网站最易遭受的3种黑客攻击

avast是捷克研发的杀毒软件,从网站上找到一篇avast关于网站安全的文章,觉得颇有意思,因此想到翻译过来与大家共享。有不对之处还望大家批评指正。 一个拥有上万访问者的小型网站管理员发来一份信,向我描述了他的遭遇,我…

Photoshop 爱好者应该收藏的42个网站

Photoshop 是 Adobe 公司旗下最为出名的图像处理软件之一,集图像扫描、编辑修改、图像制作、广告创意,图像输入与输出于一体的图形图像处理软件。今天,本文与大家分享42个非常有用的 Photoshop 设计教程和素材资源网站,希望能帮助…

DNN快速入门教程3 - 如何创建DotNetNuke网站

这个入门系列已经停了很长时间了,没有完成的原因是我有太多的东西想写但是自己又没有一个明确的主线。经过最近blog,和QQ群的反馈我突然意识到,这个入门系列就是要帮助大家从零开始完成一个自己的DNN5网站,不需要太过深入&#xf…

(转)SharePoint 2010的网站主题

从SharePoint 2003开始,主题就作为一种自定义SharePoint外观的重要选项。SharePoint 2003和2007中的包括一系列开箱即用的主题,可以被网站所有者通过SharePoint UI应用到SharePoint网站。网页设计师和开发人员可以创建包含自定义图片及CSS文件的自定义主…

自己动手搞定支付宝手机Wap网站支付接口 FOR ECShop

支付宝WAP网站版本的支付接口网上整合的比较少,看到很多网站在卖,顿觉无语。 主要是得自己查看支付宝官方提供的SDK中的开发文档。 支付宝sdk下载地址:https://doc.open.alipay.com/doc2/detail?treeId60&articleId103564&docType1 …

优秀网页设计:25个精美的旅游网站设计示例

旅游公司和旅行社的网站通常都会搭配非常有吸引力的精美照片,目的是为了突出视觉吸引力,获取更多的潜在客户。这篇文章向大家分享的25个精美的国外旅游网站设计作品,你可以从这些优秀的网站作品中学习大照片在网页背景中的应用以及制作出多彩…

大型网站系统架构分析

千万级的注册用户,千万级的帖子,nTB级的附件,还有巨大的日访问量,大型网站采用什么系统架构保证性能和稳定性? 首先讨论一下大型网站需要注意和考虑的问题。 数据库海量数据处理:负载量不大的情况下select、…

百度搜索引擎优化指南3.0_「百度SEO」百度推出的针对网站优化指南有哪些?第二篇...

一、面向搜索引擎的网站建设。搜索引擎只是网站上一个普通的访客,对网站的抓取方式、对网站/网页的价值判断,也都是从用户的角度出发的,任何对用户体验的改进,都是对搜索引擎改进。对搜索引擎的优化,同时也会让用户受益…

网站到底是什么?

网站到底是什么? 网站是由一个一个网页构成的,要想理解网站是什么,首先要理解网页是什么。 1. 什么是网页? 网页其实就是放在服务器上的一个文件,当我们浏览网页时,这个文件会被下载到我们本地的电脑&am…

无法访问此网站 localhost 拒绝了我们的连接请求。_PHP实战之WEB网站常见受攻击方式及解决办法...

一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面就讨论一下几种漏洞情况和防止攻击的办法跨站脚本攻击(XSS)跨站脚本攻击(XSS,Cross-site scripting)是最常见和基本的攻击WEB网站的方法。攻击者在网页上发布包含攻击性代码的数据。当浏览者看到此网…