大型互联网网站架构心得之一:分

news/2024/5/9 23:37:15/文章来源:https://blog.csdn.net/weixin_34370347/article/details/93280334

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

首先是横向的分:
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都要好

转载于:https://www.cnblogs.com/rocky99261/archive/2008/10/13/1310238.html

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

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

相关文章

多个域名指向同一个网站实现方法

导读:   一般搜索引擎不会因为你多一个域名指向而惩罚.包括百度.经过一段时间,一般的搜索引擎都能根据自身的规则来识别两个网站为同一个网站. 这样它们会选择一个域名做为主域名,另一个域名则忽略.输入该域名在搜索引擎查询时,搜索引擎会自动将其转到另一域名.  …

如何为自己的网站设置二级域名?

导读: /* written by Jaron ,2004-08-03 */ /* 原出处:Web技术() MVPCN.net Blog (http://blog.mvpcn.net) */ /* 转载请注明出处和保留此版权信息*/ /* 欢迎使用SiteManager网站管理系统 http://demo.jaron.cn*/ 在CSDN时,有不少网友问过这样的问题,所以…

京东一面:Nginx 禁止国外 IP 访问网站!

先来说说为啥要写这篇文章,之前小编看了下nginx 的访问日志,发现每天有好多国外的IP地址来访问我的网站,并且访问的内容基本上都是恶意的。因此 我决定 禁止国外IP 来访问我的网站 想要实现这个功能有很多方法,下面我就来介绍基于…

MOSS 2010:Visual Studio 2010开发体验(34)——工作流开发最佳实践(六):网站工作流...

我们前面花了几篇文章介绍了工作流的概念,以及如何设计可重用的工作流(可重用和全局可重用).如果你对这些话题还不是很清楚,可以先参考的链接 MOSS 2010:Visual Studio 2010开发体验(26)——工作流开发概述…

借助HttpCombiner让你的网站加速

借助HttpCombiner让你的网站加速 上一篇 < 利用Microsoft Ajax Minifier在服务器端对静态资源进行自动化压缩 > 得到不少有意义的交流和建议,最近也在不停的尝试做一些网站优化的工作,我会陆续的写一些或者翻译一些优化方面的文章跟大家交流,一方面提供给有需要的朋友一…

Firefox浏览器查看SEO数据最好用的插件

虽然我觉得我的firefox浏览器是越来越笨重&#xff0c;但是一些必不可少的插件我还是装了的。今天我给大家推荐SearchStatus插件&#xff0c;可以说它是Firefox 上最优秀的SEO 插件。 安装地址&#xff1a;SearchStatus 安装后&#xff0c;工具条默认显示在右下角的浏览器状态栏…

网站结构优化的基本方法

网站结构优化的基本方法网站结构优化就是对网站页面的存储方式&#xff08;物理结构&#xff09;、内部链接关系&#xff08;逻辑结构&#xff09;进行合理的调整&#xff0c;以减少网站的目录层级&#xff0c;优化普通页面与重要页面之间的链接深度&#xff0c;增加重要页面的…

经典伤感配乐鉴听-人生的旅途|最佳音乐推荐网站-MP3火力网|音乐试听|唱片导购|

导读&#xff1a; 作者&#xff1a;MP3火力网 发布时间&#xff1a;2007-06-15 09:52:33 来源&#xff1a;MP3火力网(注:如需停止部份页面音乐播放,请按一下浏览器停止(X)按键.重播按F5刷新页面) 唱片推荐 经典伤感配乐鉴听&#xff0d;人生的旅途推荐音乐:推荐指数 8.8(最高…

LNMP禁止输入IP直接访问网站的设置

查看原文&#xff1a;http://www.hellonet8.com/1131.html 从博主刚开始接触建站到现在已经1年多了&#xff0c;期间用过免费空间和虚拟主机&#xff0c;最后也最终转战到VPS上了。总体感觉虚拟主机性能和VPS的差距还是比较大的&#xff0c;而且VPS自主性比虚拟主机多很多&…

个人第一个在线看电影电视网站

查看原文&#xff1a;http://www.hellonet8.com/1245.html 今天章郎虫把我的一个在线电影电视网站给正式上线了。这个网站是纯采集的&#xff0c;所以基本没用多少时间。电影站的名字也是随便写的&#xff0c;叫“ZJ影视资源网”&#xff0c;网址是http://video.chekiang.info/…

18个优秀的在线图片编辑服务网站 | 可能吧

导读&#xff1a; 说起编辑图片&#xff0c;可能大多数人都会马上想起强大的Photoshop。事实上&#xff0c;除了购买或下载盗版的PS之外&#xff0c;你还可以使用很多优秀在线图片编辑服务&#xff0c;这些网站大多数都是免费的。对于大部分的人来说&#xff0c;它们提供的功能…

PHP-COOKIE保存网站访问量

2019独角兽企业重金招聘Python工程师标准>>> <?php global $count; $count1; if(!isset($_COOKIE["visittime"])){ setcookie("visittime",date("y-m-d H:i:s")); setcookie("visitcount",1); echo "欢迎你第一次…

重新设计的网站的14个例子

网站重新设计更为复杂&#xff0c;因为会碰到原设计的设计规范&#xff0c;这是不可避免的。在不影响功能和网站内容的情况下&#xff0c;设计人员需要阐述一个新的观点或者给它一个新的外观。虽然重新设计一个网站是一个具有挑战性的任务&#xff0c;但是这对爱好设计师工作的…

Nginx屏蔽个别User-Agent蜘蛛访问网站的方法

查看原文&#xff1a;http://www.sijitao.net/1930.html 对于做国内站的我来说&#xff0c;我不希望国外蜘蛛来访问我的网站&#xff0c;特别是个别垃圾蜘蛛&#xff0c;它们访问特别频繁。这些垃圾流量多了之后&#xff0c;严重浪费服务器的带宽和资源。通过判断user agent&am…

使用七牛云解决gravatar头像拖慢wordpress网站打开速度的问题

查看原文&#xff1a;http://www.sijitao.net/1968.html 之前博主使用的是多说镜像来解决gravatar头像打不开和拖慢网站打开速度的问题&#xff0c;但运行一段时间后发现多说头像不怎么稳定&#xff0c;有时候头像还是打不开。所以这次试用七牛云存储来解决&#xff0c;整体思路…

Zabbix 增加HTTPS网站SSL证书过期时间监控

原文地址&#xff1a;https://zhangnq.com/3106.html 随着HTTPS网站的普及&#xff0c;SSL证书的过期时间需要重点关注。如果使用lets encrypt的免费证书&#xff0c;可以配置自动更新程序。不过我觉得最好还是做下监控&#xff0c;因为有时候自动续期可能会出现问题。zabbix实…

Nginx和PHP网站防CC攻击解决方案步骤举例

昨天接到客户服务器告警,看到一个nginx+php网站正在遭受CC攻击,导致服务器复制居高不下,正常业务访问大多数时候出现502错误。 CC攻击是 DDOS(分布式拒绝服务) 的一种,DDoS是针对IP的攻击,而CC攻击的是网页。CC攻击来的IP都是真实的,分散的。数据包都是正常的数据包,攻…

2011年国外最受欢迎的15个Torrent网站

2019独角兽企业重金招聘Python工程师标准>>> 面向全球电子商务知识库网站eBizMBA公布了2011年国外最受欢迎的15个Torrent网站&#xff1a; 1 ISOHunt (http://www.isohunt.com) eBizMBA排名第392&#xff0c;估计每月访客12000000人&#xff0c;竞争力排名第713&…

使用Bootstrap 3开发响应式网站实践01,前期准备、导航区域等

“使用Bootstrap 3开发响应式网站实践”系列&#xff0c;将使用Bootstrap 3.2制作一个自适应网站&#xff0c;无论是在电脑、平板&#xff0c;还是手机上&#xff0c;都呈现比较好的效果。在电脑浏览器上的最终效果如下&#xff1a; 在手机上的呈现效果如下&#xff1a; 本篇主…

一些网站 http://ychun.w.googlepages.com/pages

大家都可以说话的地方&#xff1a; 电子产品世界&#xff1a;http://bbs.edw.com.cn nios论坛&#xff1a;http://www.niosforum.com 嵌入式论坛&#xff1a;http://www.anywlan.com/tony/bbs PLD论坛&#xff1a;http://www.pld.com.cn/bbs/index.asp EDAboard&#xff1a;htt…