随笔分类 - 系统架构
摘要:我在CERNET做过拨号接入平台的搭建,而后在Yahoo&3721从事过搜索引擎前端开发,又在MOP处理过大型社区猫扑大杂烩的架构升级等工作,同时自己接触和开发过不少大中型网站的模块,因此在大型网站应对高负载和并发的解决方案上有一些积累和经验,可以和大家一起探讨一下。 一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编
阅读全文
摘要:千万级的注册用户,千万级的帖子,nTB级的附件,还有巨大的日访问量,大型网站采用什么系统架构保证性能和稳定性?首先讨论一下大型网站需要注意和考虑的问题。数据库海量数据处理:负载量不大的情况下select、delete和update是响应很迅速的,最多加几个索引就可以搞定,但千万级的注册用户和一个设计不好的多对多关系将带来非常严重的性能问题。另外在高UPDATE的情况下,更新一个聚焦索引的时间基本上是不可忍受的。索引和更新是一对天生的冤家。高并发死锁:平时我们感觉不到,但数据库死锁在高并发的情况下的出现的概率是非常高的。文件存储的问题:大型网站有海量图片数据、视频数据、文件数据等等,他们如何存储
阅读全文
摘要:之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么一个网站需要那么复杂的技术,于是有了写这篇文章的想法,在这篇文章中将阐述一个普通的网站发展成大型网站过程中的一种较为典型的架构演变历程和所需掌握的知识体系,希望能给想从事互联网行业的同学一点初步的概念,:),文中的不对之处也请各位多给点建议,让本文真正起到抛砖引玉的效果。架构演变第一步:物理分离webserver和数据库最开始,由于某些想法,于是在互联网上搭建了一个网站,这个
阅读全文
摘要:1.1 Web server Web server 用来解析HTTP协议。当web服务器接收到一个HTTP请求时,会返回一个HTTP响应,例如送回一个HTML页面。为了处理一个请求,web服务器可 以响应一个静态页面或者图片。进行页面跳转,或者把动态响应的产生委托给一些其它的程序完成,比如CGI, JSP, Servlets, ASP.NET,PHP脚本。 当用户访问一个网站时,首先用户通过查询DNS服务器,得到该域名对应的IP地址,然后使用这个IP地址来进行访问。用户的请求是一个url地 址,在web服务器端,url地址对应web服务器上的文件系统中的某个网站文件的路径。Web serv..
阅读全文
摘要:记得以前给大家介绍过视频网站龙头老大YouTube的技术架构,相信大家看了都会有不少的感触,互联网就是这么一个神奇的东西。今天我突然想到,优酷网在国内也算是视频网站的老大了,不知道他的架构相对于YouTube是怎么样的,于是带着这个好奇心去网上找了优酷网架构的各方面资料,虽然谈得没有YouTube那么详细,但多少还是挖掘了一点,现在总结一下,希望对喜欢架构的朋友有所帮助。一、网站基本数据概览据2010年统计,优酷网日均独立访问人数(uv)达到了8900万,日均访问量(pv)更是达到了17亿,优酷凭借这一数据成为google榜单中国内视频网站排名最高的厂商。硬件方面,优酷网引进的戴尔服务器主要以
阅读全文
摘要:Flickr.com 是网上最受欢迎的照片共享网站之一,还记得那位给Windows Vista拍摄壁纸的Hamad Darwish吗?他就是将照片上传到Flickr,后而被微软看中成为Vista壁纸御用摄影师。Flickr.com 是最初由位于温哥华的Ludicorp公司开发设计并于2004年2月正式发布的,由于大量应用了WEB 2.0技术,注重用户体验,使得其迅速获得了大量的用户,2007年11月,Flickr迎来了第20亿张照片,一年后,这个数字就达到了30亿,并且还 在以加速度增长。 2005年3月,雅虎公司以3千500万美元收购了Ludicorp公司和Flickr.com。虽然Flic
阅读全文
摘要:一、上章回顾 上章我们主要讲述了系统设计规范与原则中的具体原则与规范及如何实现满足规范的设计,我们也讲述了通过分离功能点的方式来实现,而在软件开发过程中的具体实现方式简单的分为面向过程与面向对象的开发方式,而目前更多的是面向对象的开发设计方式。并且我们也讲述了该如何通过设计手段去分析功能点及设计分离点,应该如何在设计的过程中分析的角度及如何去满足设计规范与原则。首先我们通过下图来回顾下上章要点:二、摘要 本文将已架构的方式去分析分层结构中的业务层的设计,如何写出来内聚度,高耦合的业务逻辑层,并且如何根据我们的项目中的个功能需要去设计业务层。我们本章将会通过几种可能的业务层的设计模式去分析,并且
阅读全文
摘要:一、前言 最近也许是由于假期的原因,我发布的文章的速度变慢了,对大家说下抱歉,这个系列的确我很难写,感谢大家对我的支持和关注,的确我在发布后得到大家的支持和认可,让我有了更多的动力,之前发布的有些内容,可能对各层讲解的内容的广度还不够,当然这和我个人的水平面有关,还请各位多多提出宝贵意见和建议。 从本篇开始,我将会采用更加规范的格式,更严谨的求知态度,更加准确的表达,去将接下来的系列文章写完,并且与群中的很多朋友交流后,他们希望出一个总的PDF电子书,这样可以方便阅读,的确谢谢各位的支持,我目前将以后每篇写的内容,放一份PDF格式的在群共享中,有需要的朋友可以进行相应的下载,由于本人的写作水平
阅读全文
摘要:一、上章回顾 上篇我们主要讲解了系统架构中的四种架构模式,并且分析了四种架构模式的实现及应用场景,那么先来回顾下架构中的业务逻辑层的使用及总结。如果大家对图中讲述的内容不明白或者说是不深入那么可以参考上篇讲解的内容:系统架构师-基础到企业应用架构-业务逻辑层。二、摘要 本文将已架构的方式去分析分层结构中的服务层的设计,如何设计出来满足我们说的业务需求及设计规范的服务层将是我们的目标,可能我想大家在项目架构的过程中可能有些同仁,没有用到该层,或者说是采用的是常用的分层结构的设计,而没有把服务层单独的抽出来,当然我们必须首先知道服务层是干什么用的?为什么要单独写一个服务层呢?还有就是设计服务层我们
阅读全文
摘要:一、上篇回顾 我们先来回顾下上篇讲解的内容,我们前面的几节分别讲述了,业务逻辑层、数据访问层、服务层、表现层,我们了解了这些分层的职责和分层之间的大概的关联关系,本篇可能主要是简单的介绍下企业应用的几类模式,结合这几个分层直接的交互来完成系统功能的构建。我们还是先对我们学习的四个分层的职责和功能做个大概的回顾,我们先来看看下图来回顾下我们讲述的内容。 我想通过上图,大家能回忆起我们讲述的相关内容,然后整理好自己的思路,我们本文将会针对这几个分层进行相应的模式的讲解,并且会结合实例来说明企业应用架构的简单应用。我想这也是大家关心的内容,我也希望大家能多提出宝贵意见,大家共同提高。 之前说是提供P
阅读全文
摘要:一、上章回顾 上章我们主要讲述了系统设计规范与原则中的具体原则与规范。如何实现满足规范的设计,我们也讲述了通过分离功能点的方式来实现,而在软件开发过程中的具体实现方式简单的分为面向过程与面向对象的开发方式,而目前更多的是面向对象的开发设计方式。具体的内容请看下图: 上图描述了软件设计的原则:低耦合,高内聚,并且简单说明了,如何实现这2个原则,通过分离关注点的方式。我们把功能称之为关注点。二、摘要 本文将通过实例来讲解如何通过分离功能点,并且讲解分离关注点实现相应功能点时应该注意的问题。比如说一些相关的重要部分的内容。分离功能点是实现软件功能的一项重要基础,随着软件复杂度的不断提高,传统分离关注
阅读全文
摘要:一、上章回顾 上一篇:系统架构师-基础到企业应用架构-系统建模[中篇](下)中我们主要讲解了部署图、活动图,我们在这里也是参考上篇的形式,这里不再详细介绍。上篇主要讲解了下面2类建模图:二、摘要 本文将讲解其他的几个类型的建模图当然只是简单的讲解,并且将结合B2C电子商城系统进行分析通过使用我们已经讲解的建模图为例。分析系统可划分的子功能模块,每个功能模块内部的运行步骤等等。 上面的2个不同类型的进行划分的建模图,本章将对上述6个建模图进行分别举例讲解。三、本章内容 1、上章回顾。 2、摘要。 3、本章内容。 4、结构图。 5、行为图。 6、本章总结。 7、系列进度。 8、下篇预告。四、结构图
阅读全文
摘要:一、上章回顾 在上篇中我们讲解了几类UML2.0语言新推出的建模图形,总体来说通过这些图形能更详细的将某类信息表达出来。在这里我们简单回顾上篇讲解的内容。 上图中已经简单介绍了上章讲述的内容,具体内容请看:系统架构师-基础到企业应用架构-系统建模[下篇]。二、摘要 本章将主要的简单介绍在系统架构中的设计模式及相应规范准则。并结合相应的代码来说明如何遵循系统架构中的一些基本的设计规范及准则。而我们将在本文介绍几类常用的设计规范,我们先来看看结构化设计的二个基本原则: 当然既然提出了基本的准则,那么我们如何来满足准则呢,并且能更好的设计呢?我们可以通过如下手段来达到这样的要求:当然图中演示了功能分
阅读全文
摘要:一、上章回顾 首先、我们先来回顾下,上篇讲解的内容,加深下印象。上篇我们主要讲解了3个建模图形分别是:顺序图(序列图)、组件图、状态图。 具体功能描述如下图:这里不详细解释,如果不清楚请看:系统架构师-基础到企业应用架构-系统建模[中篇](上) 由于全部放在一篇中篇幅太长了,所以分开讲解。二、摘要 本文主要讲解:UML建模图中的活动图、部署图等 上图中就是本章要讲解的内容,本质将仔细的剖析,部署图与组件图的关系与区别,活动图与状态图的关系与区别。三、本章内容 1、上章回顾。 2、摘要。 3、本章内容。 4、建模中的抽象模型图之部署图、活动图。 5、本章总结。 6、系列进度。 7、下篇预告。四、
阅读全文
摘要:一、摘要 本文主要从系统架构中的建模开始讲解,本文讲述的内容主要是我在工作和学习过程中的总结和经验,不足之处还请大家多多批评指出,有更好的建议也可以留言说明。本意主旨是为不熟悉系统架构建模过程和不知道如何使用建模工具,或者不熟悉如何根据需求去建立模型的角度出发,简单的阐述了在系统架构的过程中我们应该从什么样的角度出发去分析需求并且建立抽象模型。这应该说是架构师必备的技能。 本文由浅入深,本篇将简单的介绍如何使用使用UML建模中的各个结构图与行为图,去完成抽象模型的建立。二、本章内容 1、摘要。 2、本章内容。 3、建模工具介绍及使用。 4、建模中的抽象模型图。 5、本质总结。 6、系列进度。
阅读全文
摘要:一、上章回顾 上篇文章主要简单的介绍了建模中使用的标准建模语言UML的相关内容,包括用例图与类图的使用方法及如何建模。相信大家对UML建模语言已经有了初步的认识,还请大家谨记UML不同的建模图形的用处。比如,用例图主要用来描述系统的功能需求。类图主要用来描述实体间的关系。谨记这些就可以帮助我们在系统架构的过程中深入的分析。 首先向大家道歉,上篇中有部分描述错误的地方,可能对大家造成一定的错误引导。这是上篇给出的图,我描述的是组合关系。 特别更正为:这是正确的结果。箭头指向聚合类。描述的信息并无任何错误。希望能对大家指正。二、摘要 本文主要从系统架构中的建模开始讲解,本文讲述的内容主要是我在工作
阅读全文
摘要:开篇说明 由于是自己对这些技术的学习总结和心得体会,错误之处在所难免,怀着技术交流的心态,现在发表出来,所以希望大家能够多多指点,这样能使一部分人受益同时也能纠正我的错误观点,以便和各位共同提高!软件架构到底是什么 软件架构可以被简单的描述为,一系列组件之间的组合,交互,继承的关系。当然这样的解释基本上人人都可以接收。不过在我们看来,这样的说法有点过于抽象。 软件架构有这标准的定义,就是参考ANSI/IEEE的标准,软件架构可以理解为软件密集型系统中对系统的实现和部署起决定性作用的的系统。 软件架构中的关键点是应该符合项目干系人的目标,功能上当然细分成功能性的和非功能性的需求。 软件架构有一定
阅读全文
摘要:开篇 上篇,我们介绍了,单机软件的架构,其实不管什么软件系统,都是为了解决实际中的一些问题,软件上为了更好的解决实际的问题才会产生,那么对于单机软件的架构则也是在不断的变化和发展,当然好的软件架构会对软件的生命周期起到决定的作用。好的软件架构,无疑会延长单机软件的生命周期,同时适应后期的不断的衍生的需求变化,.NET FrameWork的架构设计和体系结构设计,我相信是非常优秀的。 本篇,将会讲述大家比较常见的架构模式,客户端-服务器的模式,可以理解成C/S架构模式。现在的C/S架构已经从原来的简单的客户端-服务器的形式,变成了更多衍生的架构模式,C/A/S,C/S/M/S。包括多层C/S的架
阅读全文
摘要:开篇 系统架构的文章系列,也是搁浅的太久了,最近也是整理了下思路,将目前未完成的内容,写完吧,也不能拖太久,就不太好了。所以就趁周末写一下,今天我们要说的是单机应用,单击应用软件可以很复杂,也可以很简单。有些单机软件可以没有数据库,也可以有数据库,比如我们平时的一些工具类的软件,写字板,VS开发工具等,当然,目前很多的单机软件都有联网的功能,单机软件,估计大家有时候回想,单机软件不需要什么特殊的架构设计吧,其实不然,因为有的时候我们的单机工具,可能是提供给不同的用户群体等,或者是面向不同的人员使用时,适应不同的场景和需求的变化时,就会要求我们的单机软件也需要从架构的角度去考虑。因为如果想要可持
阅读全文

浙公网安备 33010602011771号