大型网站技术架构演进

news/2024/5/9 14:54:18/文章来源:https://blog.csdn.net/weixin_34153893/article/details/94648942

转载:https://cloud.tencent.com/developer/article/1396863

【大型网站技术架构笔记】系列是阅读《大型网站技术架构核心原理与实践》一书的一些笔记,记录了原书的一些重要内容以及我的个人理解。其中很多内容网上都能找得到。其实整本书,我最赞同的是作者阐述的网站架构的价值观——“业务成就技术,而不是相反”。在没有业务场景的时候就一味追逐架构,为技术而技术,或者一上来就想要设计出一个可以适用所有场景的解决方案,是不理智的。我们有的时候可能会陷入技术的怪圈而忘了考虑业务本身。我曾经看到的一句我很喜欢的话,在这边也与诸君分享:好的架构都是进化来的,不是设计来的。

以下为 (一)演化过程 内容:

一、初始阶段

初始阶段考虑到使用量规范较小,且快速开发等原因,采用单服务器,将文件、数据库与应用程序一起部署即可。语言可以采用LAMP。如下图:

二、应用服务于数据服务分离

随着访问量的增多,导致存储空间不足,所以需要将应用与数据存储分离部署。文件和数据库存储需要分开。以避免由于大文件io而导致实时数据库服务的长响应延时。文件服务器需要更多的磁盘空间,数据库服务由于需要进行磁盘检索和数据缓存,所以需要较多的磁盘和内存。而应用服务器由于需要业务逻辑带来的频繁密集计算,所以需要较好的CPU。如下图。

三、使用缓存改善网站性能

网站访问中,对访问频率比较高的数据进行本地缓存和分布式缓存,能够很好地提高网站性能。什么时候采用本地缓存,什么时候采用分布式缓存呢?一些公司会选择将热点数据存入本地缓存,同时异步写入分布式缓存。而更多时候,我们较少采用本地缓存,因为其会占用宝贵的应用程序的内存空间。采用本地缓存只有那种占用少量内存,且使用率非常高的数据。比如每次请求都需要判断用户是否在黑名单中。此时就可以把名单加载入本地缓存。分布式缓存我们常用的就是memcached和redis。二者的伸缩性都非常优秀。

四、应用服务集群化

单一的服务器存在着并发处理能力不足,高峰期负载过高,单点等问题。此时可以用过简单的同构集群化部署来解决这一问题。

 五、数据库读写分离

    随着网站的发展,数据库的负载会变得越来越大。而且读、写数据库的操作本身就不是一个时间量级上的操作。如果都混在一起处理,则将很可能导致操作长时间阻塞等其他问题。大部分的主流数据库都自带主从热备的功能,所以部署起来还是比较简单的。而读写分离以及下面将提到的分库之后,我们常会采用一些中间件来对这个底层数据访问进行封装,从而对应用透明。比如mybatis有阿里巴巴的cobar client框架。读写分离后,我们的应用服务的设计中,就需要慎重考虑,读写同步的延时这一最终一致性的保证,对用户体验带来的影响是否可以接受。

六、采用其他缓存代理技术

以上说的基本都是服务器端的优化,而用户访问网站时候,带宽、地域等其他因素会对访问体验带来不可忽视的影响。来改善这一体验,加快网站访问速度的办法主要有cdn加速和反向代理。可以认为cdn是一种特殊的反向代理,其也是基于反向代理的原理过来实现的缓存和加速。其主要缓存一些静态资源到离用户最近的网络提供商的机房。而此处的反向代理则是部署在网站服务端的机房。其既可以进行一些静态数据的高速缓存,也由于采用了SSL与内部服务器进行交互从而节省了大量开销。

七、采用分布式数据库和分布式文件系统

随着网站规模的增大,单一的数据库和文件服务器已经无法很好迎合业务场景。所以同理地,也会将其集群化部署。

八、采用nosql和搜索引擎

随着数据需求越来越复杂,比如需要对log进行存储和分析以及检索。此时可以引入nosql数据库(如mongodb、hbase等)和搜索引擎技术(如lucense等)。同时,此时的数据源可能已经比较多,可以来自关系型数据库集群、非关系型数据库、缓存、文件系统甚至从消息队列订阅的数据等等。所以需要一个统一的数据访问模块(DAL)来统一对这一过程进行封装和管理。

九、业务拆分与分布式化

前面我们提到,对业务服务进行同构部署来实现业务的并发处理。而我们知道这样简单的加机器在前期确实可以实现服务性能的线性增长,但是到了后期,并发量上来了之后,会发现这一处理将会很快达到瓶颈。而且于此同时,各个子业务的差异性带来的架构以及请求量方面的差异将日趋明显,如果还这样进行同构化的混部,其服务的性能将可能最终跟不上业务的发展,甚至可能导致雪崩。所以最好的做法,就是对业务服务进行垂直拆分。同时对基础服务进行水平拆分。真正实现SOA。

如此,便是一个网站架构演化的常见路径

转载于:https://www.cnblogs.com/lonelamb/p/10864509.html

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

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

相关文章

韩国网站构图和配色分析

我们先看看:韩国网站构图和配色分析-构图篇 [NextPage] 韩国网站构图和配色分析-配色篇

中国顶级品牌HONEST官方网站设计解析—道格瑞恩内部资料

中国顶级知名品牌 HONEST LIGHTERS 产品定位于:高档的打火机、名贵的雪茄剪与法式烟斗 销售定位与:主要出口欧洲与美洲国家的高档市场 网站作品浏览地址:http://218.30.101.85 http://www.0086.com设计与制作公司…

国际知名网站设计大师精品设计集

http://www.2advanced.com/ http://www.01-la.com/ http://www.preloaded.com/ http://www.aliveis.com/ http://www.linkdup.com/ http://www.mixdup.com/

网站ICP备案流程图解

1.访问信息产业部备案网站 (网站打开比较慢,请耐心等待: www.miibeian.gov.cn )2.网站被通信管理局拒绝的常见原因(必读) 2.点击接受,开始注册 这个是信产部的流程图 备案流程见下: 3.开始填写个人资料:4.收取电子邮…

如何知道一个网站内页是否被Google收录或更新

请到此http://toolbar.google.com/intl/zh-CN下载安装Google工具条,安装成功后,打开它的“工具栏选项”,把“网页资料”菜单打上勾。 然后通过http打开你的网页(不能是本地文件)。点击Google工具条的蓝色“i”这个按钮,在下拉菜…

韩国商业网站界面设计分析------推荐2005-5-24 出处:vipcn.com

一、页面结构   韩国网站的页面结构相对来说比较简单,可以说几乎是统一的风格,顶部的左边是网站的logo,右边就是它的导航栏,和国内网站不一样的地方它甚少采用下拉菜单的样式,而是把各级栏目的下级内容放在导航栏的下…

33个优秀艺术类网站界面欣赏

1、http://www.apparelidea.com 2、http://www.biola.edu/undergrad 3、http://www.chrizdee.de/wordpress 4、http://www.daleharris.com 5、http://www.darasgarden.com 6、http://www.electricpulp.com 7、http://www.timeforcake.com 8、http://www.freepeople.com 9、http…

10个最经典的网站改版

一般来说,网站设计制作到最后发布到网上,这只是网站发展的最初一个阶段,网站作为公司的一个线上宣传手段,极大的体现了公司的理念和宗旨,是公司不可分割的一部分。公司要发展,网站也会不断的更新变化。让我…

网站中文字的视觉设计

可能很多人都要问,网站的文字还需要设计吗?对于很多的网站来说,字在整个网站的内容中占了80%以上甚至更多,或者换个角度上说,网站可以没有颜色,没有图片,但唯独不能没有文字。一个产品团队&…

网站的视觉路径和版式设计

cooper谈到用户的视觉路径一般是:从上到下,从左到右。好的视觉设计路径应该是顺应这样的用户习惯,糟糕的设计会让用户无所适从,焦点到处都是。当然,上图的视觉路径图并非绝对的,浏览习惯因人而异。 网站中方…

国外web设计教程资源网站收集

作者authorSawser来源http://sawse.com/2007/11/21/top-12-sites-and-tools-for-web-design-and-inspiration/不管你是专业还是业余的网页设计者,或者仅仅想了解一下网页设计是何物的,这里有些好棒的资源值得去浏览并收藏。这些收藏涵盖了各种设计类型&a…

互联网上最独特的20个网站

当你在创建一个新的网站的时候,一个版面独特的网页总会在不经意间激发你的灵感。不知道这些使用背景图片产生强烈视觉冲击的页面有没有给你带来设计灵感。1, http://www.popmatik.co.uk/ 2, Digitalmash.com 3,Melissahie.com 4&a…

60 个激发你灵感的电子商务网站展示

电子商务多火啊,可是多数电子商务网站做得都很垃圾,这里列出了 60 个设计精美的电子商务网站,你值得看看。 Heart Breaker Fashion Here You Buy Vintage-inspired Fashion Shop Sanctuary T Shop Sancuary T Showcases Awesome Beauty And H…

在线医生预约网站ZocDoc获高盛2500万美元C轮投资

据美国科技博客techcrunch报道,在上个月获得俄罗斯风投机构DST 5000万美元投资之后,位于纽约的在线医生预约网站 ZocDoc昨日在其C轮融资中又从高盛投资公司募集2500万美元,这使得ZocDoc公司C轮融资总额达到了7500万美元。至此,该公…

Box of Bundles:免费设计资源网站

Box of Bundles 网址:http://www.boxofbundles.com 地点:美国 创立时间:2012年2月 用户群:设计师 Box of Bundles 是一个免费提供创意设计资源的新网站。类似酷站之前推荐过的免费的设计资源素材网站 Premium Pixels,都…

给你的网站加上站内搜索---Compass入门教程

Compass(基于Lucene)入门教程 1 序言 2 Compass介绍 3 单独使用Compass 4 springhibernate继承compass 4-1 jar包 4-2 配置文件 4-3 源代码 4-4 说明 4-5 测试 5 总结下吧 1 序言 这些天一直在学点新的东西,想给毕业设计添加点含量,长时间的…

想学习建个网站?WAMP Server助你在Windows上快速搭建PHP集成环境

我想只要爬过几天网的同学都会知道PHP吧,异次元的新版本就是基于PHP的WordPress程序制造出来的,还有国内绝大部分论坛都是PHP的哦。据我所知很多同学都想要试着学习一下PHP,无奈要在Windows下安装搭建好一个PHP环境来学习对于菜鸟同学来说繁琐…

计算机组成原理移位图,逻辑运算和移位指令-计算机组成原理与汇编语言-电子发烧友网站...

3.4.1 逻辑运算和移位指令 1.逻辑运算指令(1)NOT OPRD该指令对操作数进行求反操作,然后将结果送回。操作数可以是寄存器或贮器的内容。该指令对标志位不产生影响。例如: NOT AL(2)AND指令该指令对两个操作数进行按位相“与”的逻辑运算。即只有参加相与的…

IE浏览器中用Firebug调试网站的方法

对于大部分做前端设计者而言应该都使用过Firefox浏览器下一款调试网站的扩展插件firebug吧,功能非常的强大,对于我们找出网页兼容性的问题非常的有效。不过对于很多不喜欢使用Firefox浏览器的开发者而言,那么IE浏览器有没有类似的插件呢&…

那些香喷喷的网站

1、蓝奏云网盘:为用户而变革,越简单越好,越快越好 ! https://pc.woozooo.com/ 网盘工具,无限制的储存空间。最重要的是下载速度毫无限制,你的网速有多快下载速度就有多快! 2、docsmall&#xf…