软件架构的设计方法

软件架构的设计方法,第1张

在软件中架构模式主要有两种,一种是c/s模式,一种是b/s模式,这里一起探讨下b/s架构怎么设计,希望对大家有帮助,请帮忙点赞
第一步
b/s模式是浏览器--服务器的模式,这中模式比c/s 客户端-服务端的模式好,有点较多:
b/s模式可以随时更新,用户不用频繁的升级客户端
第二步
架构b/s模式,主要是服务端的架设,一般情况浏览量比较小的时候只需要一台服务器
第三步
如果网页需要与记录客户的一些信息,比如资料、订单之类,需要涉及到数据库,需要在服务器端增减数据库
第四步
当客户较多时,需要做负载均衡,需要F5、或者ngxin:
第五步
当数据库压力比较大的时候,需要建立数据库的集群:

1983年,理察·马修·斯托曼(Richard Stallman)创立了GLinux[3]NU计划(GNU Project)。这个计划有一个目标是为了发展一个完全免费自由的Unix-like *** 作系统。自1990年代发起这个计划以来,GNU 开始大量的产生或收集各种系统所必备的元件,像是——函式库(libraries)、编译器(compilers)、侦错工具(debuggers)、文字编辑器(text editors)、网页服务器(web server),以及一个Unix的使用者接口(Unix shell)——除了执行核心(kernel)仍然付阙外。1990年,GNU计划开始在马赫微核(Mach microkernel)的架构之上开发系统核心,也就是所谓的GNU Hurd,但是这个基于Mach的设计异常复杂,发展进度则相对缓慢。
最初的设想中,Linux 是一种类似Minix这样的一种 *** 作系统。1991年4月,芬兰赫尔辛基大学学生Linus Benedict Torvalds(当今世界最著名的电脑程序员、黑客)不满意Minix这个教学用的 *** 作系统。出于爱好,他根据可在低档机上使用的MINIX设计了一个系统核心Linux 001,但没有使用任何MINIX或UNIX的源代码。他通过USENET(就是新闻组)宣布这是一个免费的系统,主要在x86电脑上使用,希望大家一起来将它完善,并将源代码放到了芬兰的FTP站点上代人免费下载。本来他想把这个系统称为freax,意思是自由( free) 和奇异(freak) 的结合字,并且附上了"X"这个常用的字母,以配合所谓的Unix-like的系统。可是FTP的工作人员认为这是Linus的MINIX,嫌原来的命名“Freax”的名称不好听,就用Linux这个子目录来存放,于是它就成了“Linux”。这时的Linux只有核心程序,仅有10000行代码,仍必须执行于Minix *** 作系统之上,并且必须使用硬盘开机,还不能称做是完整的系统;随后在10月份第二个版本(002版)就发布了,同时这位芬兰赫尔辛基的大学生在composminix上发布一则信息:
Hello everybody out there using minix-
I'm doing a (free) operation system (just a hobby,
won't be big and professional like gnu) for 386(486) AT clones
由于许多专业用户(主要是程序员)自愿地开发它的应用程序,并借助Internet拿出来让大家一起修改,所以它的周边的程序越来越多,Linux本身也逐渐发展壮大起来。
从1983年开始的GNU计划致力于开发一个自由并且完整的类Unix *** 作系统,包括软件开发工具和各种应用程序。到1991年 Linux 内核发布的时候,GNU已经几乎完成了除了系统内核之外的各种必备软件的开发。在Linus Torvalds和其他开发人员的努力下,GNU组件可以运行于Linux内核之上。整个内核是基于GNU通用公共许可,也就是GPL(GNU General Public License,GNU通用公共许可证)的,但是Linux内核并不是GNU 计划的一部分。1994年3月,Linux10版正式发布,Marc Ewing成立了 Red Hat 软件公司,成为最著名的Linux分销商之一。
Unix与Linux的历史源流
早期Linux的开机管理程序(boot loader)是使用LILO(Linux Loader),存在着一些难以容忍的缺陷,例如无法识别8G以外的硬盘,后来新增GRUB(GRand Unified Bootloader)克服了这些缺点,具有‘动态搜寻核心档案’的功能,可以让您在开机的时候,可以自行编辑您的开机设定系统档案,透过 ext2 或 ext3 档案系统中载入Linux Kernel。
Linux 的标志和吉祥物是一只名字叫做Tux的企鹅,标志的由来是因为Linus在澳洲时曾被一只动物园里的企鹅咬了一口,便选择了企鹅作为Linux的标志。Linux的注册商标是Linus Torvalds所有的。这是由于在1996年,一个名字叫做William R Della Croce的律师开始向各个Linux 发布商发信,声明他拥有Linux商标的所有权,并且要求各个发布商支付版税,这些发行商集体进行上诉,要求将该注册商标重新分配给Linus Torvalds。Linus Torvalds 一再声明Linux 是免费的,他本人可以卖掉,但Linux绝不能卖。
Linux发行版的某些版本是不需要安装,只需通过CD或者可启动的USB存储设备就能使用的版本,他们称为LiveCD。
[编辑本段]三、应用与评价
linux桌面过去,Linux主要被用作服务器的 *** 作系统,但因它的廉价、灵活性及Unix背景使得它很合适作更广泛的应用。传统上有以Linux为基础的“LAMP(Linux, Apache, MySQL, Perl/PHP/Python的组合)”经典技术组合,提供了包括 *** 作系统、数据库、网站服务器、动态网页的一整套网站架设支持。而面向更大规模级别的领域中,如数据库中的Oracle、DB2、PostgreSQL,以及用于Apache的Tomcat JSP等都已经在Linux上有了很好的应用样本。除了已在开发者群体中广泛流行,它亦是现时提供网站务供应商最常使用的平台。
基于其低廉成本与高度可设定性,Linux常常被应用于嵌入式系统,例如机顶盒、移动电话及行动装置等。在移动电话上,Linux已经成为与Symbian OS、Windows Mobile系统并列的三大智能手机 *** 作系统之一;而在移动装置上,则成为Windows CE与Palm OS外之另一个选择。目前流行的TiVo数位摄影机使用了经过定制化后的Linux。此外,有不少硬件式的网络防火墙及路由器,例如部份LinkSys的产品,其内部都是使用Linux来驱动、并采用了 *** 作系统提供的防火墙及路由功能。
采用Linux的超级电脑亦愈来愈多,根据2005年11月号的TOP500超级电脑列表,现时世上最快速的两组超级电脑都是使用Linux作为其 *** 作系统。而在表列的500套系统里,采用Linux为 *** 作系统的,占了371组(即742%),其中的前十位者,有7组是使用Linux的。
除了一部分专家之外,大多数人都不自己选择每一样组件或自行设置,而是直接使用Linux套件。
2006年开始发售的SONY PlayStation 3亦使用Linux的 *** 作系统。之前,Sony亦曾为他们的PlayStation 2推出过一套名为PS2 Linux的DIY组件。至于游戏开发商雅达利及id Software,都有为其旗下的游戏推出过Linux桌面版本。此外,Linux Game Publishing亦有专门为Linux平台撰写游戏,并致力于把其他在Windows平台编撰的游戏程序码转携至Linux平台,及为转携游戏提供使用授权。
而一个打算对所有生活在发展中国家孩子提供手提电脑的名为“每孩子皆有一部手提电脑(OLPC)”的项目,正是使用Linux作为缺省的 *** 作系统。
我们不必探讨LINUX源代码的开放给我们带来多大诱惑,我们只研究LINUX对我们的生活有何帮助。我们在平时只要掌握LINUX最基础的应用,以及安装及使用就可以了。对LINUX的 *** 作现在发展到了在命令行下 *** 作以及像WINDOWS的桌面系统般的应用。对LINUX不是很了解的用户可以选择桌面型LINUX安装。
这里把对LINUX的一些疑问解答从网上整理一下,贴出来,希望对那些想要了解LINUX的朋友有所帮助。
---------------------------------------------------------------------
Linux以它的高效性和灵活性著称。它能够在PC计算机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的 *** 作系统。Linux *** 作系统软件包不仅包括完整的Linux *** 作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Window图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行 *** 作。
Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿对它使用,无约束地继续传播。另一个原因是,它具有Unix的全部功能,任何使用Unix *** 作系统或想要学习Unix *** 作系统的人都可以从Linux中获益。
运行Linux需要的配置并不高,支持众多的PC周边设备,并且这样一个功能强大的软件完全免费,其源代码是完全公开的,任何人都能拿来使用。说到这里,各位可能怀疑这免费后面是不是隐藏着什么?作者会心甘情愿的把它拿出来而分文不取吗?其实,它代表着软件开发的另一种概念:那就是基于GNU的版权制度。
版权是为了保护作者应有利益而设立的制度,但时至今日它却对科技的发展造成了一定的阻碍。例如现在病毒的肆虐,就是因为微软不肯将Windows的源代码公开。杀毒软件的厂商只好自己去钻研OLE结构。还有,Intel为了保住自己的霸主地位,建立了一个个不许其它厂商使用的硬件规范,造成众多开发者并不是为了提升技术而是为了兼容性而耗费资金和时间,这样就造成了科研发展的混乱和垄断。
为了改变这种状况,Richard M Stallman在1984年创立了以生产免费软件为目的的组织--Free Software Foundation(自由软件基金会,简称FSF)。他认为:各个软件公司为了自己的利益不公开源代码会阻碍人类文明的发展,一个真正好的软件是为了替人解决问题,应该散发给需要的人。他开发了一个叫做GNU的计划,第一套软件就是GNU Emacs(UNIX平台下强大的编辑器)。任何人都能免费拿到这个软件和它的源代码,于是许多人自发的修改这套软件,为它增加功能。为了明确GNU的规范,Stallman发表了GNU General Public License和GNU Library General Public License授权声明,根据这些声明,所有的GNU软件都可以被任何人下载、出售、复制和修改,但必须提供程序源代码或者让使用者知道从哪里获得源代码!但不论免费或者收费,任何得到这些软件的使用者都有和提供者同样的权利,可以将它们赠送或出售。由于这个授权,GNU软件像滚雪球一样越来越多,功能也越来越强。当然,这样做也有不良的效果,如果开发商的利润减少了那么就没有人愿意真正开发软件了,毕竟人还是要吃饭的呀。不过随着Internet的盛行,大众越来越容易得到各种各样的软件,而且大多只为一时之需,用完之后根本不会再用,一个软件的使用寿命就大大缩短,在这种情况下,传统的电子出版行业应该做出相应的调整。
Linux核心程序的著作权归Linus本人所有,其它应用程序归各自的作者所有,但按照GNU授权,任何人都可以采取收费或免费方式来发行Linux,并在符合该授权的规范下做修改。这样就有了一大批的免费程序移植到了Linux上,包括GNU Emacs、XFree86、Mozilla等经典软件,并且在不断壮大中。由于源代码是公开的,任何一个使用Linux的人在添置了新硬件后都能自己编写驱动程序,所以Linux对新硬件的支持已经超过了许多专业UNIX系统。Linux的成功如果没有Internet是不可能的,因为Linux实际上是世界各地众多程序员共同开发的结果。
现在的Linux经过数次改版(包括核心的升级和周边程序的完善),已经发展成了一个遵循POSIX标准的纯32位多工 *** 作系统,64位版本也在开发之中。Linux可以兼容大部分的UNIX系统,很多UNIX的程序不需要改动,或者很少的改变就可以运行于Linux环境;内置TCP/IP协议,可以直接连入Internet,作为服务器或者终端使用;内置JAVA解释器,可直接运行JAVA源代码;具备程序语言开发、文字编辑和排版、数据库处理等能力;提供X Window的图形界面;主要用于x86系列的个人电脑,也有其它不同硬件平台的版本,支持现在流行的所有硬件设备。就性能上来说,它并不弱于Windows甚至UNIX,而且靠仿真程序还可以运行Windows应用程序。它有成千上万的各类应用软件,并不输于Windows的应用软件数量,其中也有商业公司开发的赢利性的软件。最可贵的是:它是一个真正的UNIX系统,可以供专业用户和想学UNIX的人在自己的个人电脑上使用。Linux是一个非常灵活的系统,相对于Windows而言也是一个比较难用的系统,就如同大多数用户用不惯MacOS的单键鼠标一样。想要对Linux轻车熟路,你必须懂得一些相关知识,软、硬件的配置,最好还懂点程序,因为没有人有义务为您提供技术支援,除了和其它用户交流之外 ,您必须要自己解决问题。当然,如果您只是作为日常应用,就不需要那么复杂啦,Linux一样会为您提供完美的 *** 作环境,你所要做的就是改变使用习惯和成见。
早期的 *** 作系统是没有图形界面的,自从Apple于1984年推出System 10开始,个人电脑才实现了真正的GUI(Graphics User Interface,图形用户界面),从此电脑变得更加具有亲和力,也更加易于使用。Windows的图形化开始于Windows 31/32,直到Windows 95的出现才标志着多媒体时间的到来,从此计算机变得能说会唱起来。Linux始于UNIX,却青出于蓝胜于蓝,同样拥有着不俗的图形用户界面,性能更稳定,也更漂亮,可以和世界上曾经出现过的,最美丽的 *** 作系统媲美!不同于现在的XP,Linux的图形界面是基于Console之上的,类似于Windows 95架于DOS之上,Linux下实现图形界面的是X Window系统(区别于MS的Windows)。
X Window是一套用于UNIX的具有极大可携性、对彩色掌握的多样性和网络之间的 *** 作透明性的健在式处理窗口系统。它和微软的Windows的工作原理并不相同,不过两者都使用图形界面和窗口技术,从外表看来有那么一点点相似,但又存在着巨大的不同,实际上X Window的界面更加多样化,也更漂亮,且高效快捷。就Windows对于DOS的地位一样,X Window一改UNIX/Linux单调的文本界面,提供了一个友善的图形用户界面(GUI)。
1984年在麻省理工学院(MIT)电脑科学研究室工作的Bob Scheifler正在发展分布式系统,DEC公司的Jim Gettys也在MIT进行A-thena计划的一部分。两者都需要一套在UNIX系统上使用的图形界面,因此两者开始合作研制X Window。1987年,MIT发布了第11个版本的X Window,并成立了非赢利性组织“X协会”来发展及控制X Window标准。所以现在的X Window并不完全是一个软件,而是一个协定,定义了一个系统所必须具备的功能。任何系统能满足这个协定及符合X协会其它的规范,便可称为X Window,它的源代码公开。因为X Window具有强大的与设备无关结构性,它提供了一组网络通信协议,任何硬件只要提供X协定,便可以执行应用程序显示一群包含图文的窗口,不需要重新编译,这种与设备无关的特性只要是根据X Window标准所开发的应用程序均可在不同的环境下作用,这就大大减少了跨越不同平台之间的编译工作,应用程序更加具有可移植性。
Linux上最常用的X Window是Xfree86,它是MIT的X11R5的移植版,使用Openlook窗口管理系统,所以Xfree86是免费的。Xfree86支持现行所有的PC显示卡,但不一定支持它们的Windows加速特性,比如DirectX 9。
到目前为止,可以支持中文的Linux己不再是凤毛麟角,而且中文应用软件正不断丰富着。但一些商业软件并未完成移植,其中有诸多原因,在此不详述。
[编辑本段]四、用户群
GNU/Linux爱好者设计宣传图,使用GPL授权
GNU/Linux社群设计的立体图,并使用GPL授权传统的Linux用户一般都安装并设置自己的 *** 作系统,他们往往比其他 *** 作系统,例如微软Windows和Mac OS的用户更有经验。这些用户有时被称作“黑客”或是“极客”(geek)。然而随着Linux越来越流行,越来越多的原厂委托制造商(OEM)开始在其销售的电脑上预装上Linux,Linux的用户中也有了普通电脑用户,Linux系统也开始慢慢抢占桌面电脑 *** 作系统市场。同时Linux也是最受欢迎的服务器 *** 作系统之一。Linux也在嵌入式电脑市场上拥有优势,低成本的特性使Linux深受用户欢迎。使用Linux主要的成本为移植、培训和学习的费用,早期由于会使用Linux的人较少,这方面费用较高,但这方面的费用已经随着Linux的日益普及和Linux上的软件越来越多、越来越方便而降低。
KDE和GNOME等桌面系统使Linux更像是一个Mac或Windows之类的 *** 作系统,提供完善的图形用户界面,而不同于其他使用命令行界面(Command Line Interface,CLI)的类Unix系统。
[编辑本段]五、未来软件界的方向
Linux 作为较早的源代码开放 *** 作系统,将引领未来软件发展的方向。
基于Linux 开放源码的特性,越来越多大中型企业及政府投入更多的资源来开发Linux。现今世界上,很多国家逐渐的把政府机构内部门的电脑转移到Linux上,这个情况还会一直持续。Linux 的广泛使用为政府机构节省了不少经费,也降低了对封闭源码软件潜在的安全性的忧虑。
[编辑本段]六、发行版
Linux各个发行版的发展关系Linux 主要作为Linux发行版(通常被称为"distro")的一部分而使用。这些发行版由个人,松散组织的团队,以及商业机构和志愿者组织编写。它们通常包括了其他的系统软件和应用软件,以及一个用来简化系统初始安装的安装工具,和让软件安装升级的集成管理器。大多数系统还包括了像提供GUI界面的XFree86之类的曾经运行于BSD的程序。发行版为许多不同的目的而制作, 包括对不同计算机结构的支持, 对一个具体区域或语言的本地化,实时应用,和嵌入式系统,甚至许多版本故意地只加入免费软件。目前,超过三百个发行版被积极的开发,最普遍被使用的发行版有大约十二个。
一个典型的Linux发行版包括:Linux内核,一些GNU程序库和工具,命令行shell,图形界面的X Window系统和相应的桌面环境,如KDE或GNOME,并包含数千种从办公套件,编译器,文本编辑器到科学工具的应用软件。
主流的Linux发行版
Asianux ,B2D Linux ,Conectiva Linux ,Debian GNU/Linux ,Fedora Core ,Gentoo Linux ,Knoppix Linux ,Linux From Scratch ,Magic Linux ,Mandriva Linux ,Red Hat Linux ,Slackware Linux ,Stanix Live CD ,SUSE Linux ,Turbo Linux ,Ubuntu Linux
中国大陆的Linux发行版
红旗Linux(Redflag Linux) ,冲浪Linux(Xteam Linux) ,蓝点Linux ,Hiweed GNU/Linux ,Magic Linux ,Engineering Computing GNU/Linux ,Open Desktop ,新华Linux ,共创Linux ,百资Linux ,中标普华Linux ,中软Linux ,新华华镭Linux(RaysLX) ,CD Linux ,MC Linux ,即时Linux(Thizlinux) ,b2d linux ,IBOX ,MCLOS ,FANX,Everest,酷博linux,新氧Linux,Hiweed。
台湾地区的Linux发行版
宏基Linux
目前最著名的发行版本:Debian,红帽(redhat)、ubuntu、OpenSuse(原Suse)、Mandriva(原Mandrake)、CentOS、fedora等
国内比较著名的linux版本:红旗linux
红旗软件有限公司(简称红旗软件)由中国科学院软件研究所和上海联创投资管理有限公司共同组建。此公司专注于基于Linux的 *** 作系统的开发和市场,以及面向不断增长的中文技术用户的多平台应用软件。他们的目标是“为网络生活注入活力”。公司将持续发展被称之为“红旗方式”的一套现代管理模式,它以进行自由软件开发的企业模式为基础,是客户驱动的用户化。
[编辑本段]七、Linux的读音
linux发音五花八门版本颇多,见到和听到的不下10种。根据linux的创始人Linus Torvalds的说法,Linux的发音和“Minix”是押韵的。“Li”中“i”的发音类似于“Minix”中“i”的发音,而“nux”中“u”的发音类似于英文单词“profess”中“o”的发音。依照国际音标应该是/'linэks/——类似于“里讷克斯”。但是,由于Linus Torvalds本人是芬兰人,所以他的Linux读音不是/'linэks/,而是/'liniks/

开发一个聊天交友软件,需要哪些费用?开发软件大概多少钱?需要服务器一年多少钱?还有其他什么费用

如今,不少企业都想拥有属于自己企业或产品的手机APP,但其中最困扰企业主的问题就是:开发一款手机APP到底需要多少钱?

简单点来说,要视手机APP的需求及质量而言,价位一般在几千到十几万左右,更高端的价格更高。

今天,我们就来详细分析一下这个问题,请继续往下看吧。 

一、APP开发款式分为固定款和定制款,两者的价格均不相同

固定款:是指直接套用已有的、现成的APP固定模板,报价是固定的,所需要的功能也是固定的,缺点就是客户拿不到源代码,也不能根据企业需求进行定制,由于源代码是封装的,如果企业以后想进行功能升级或系统维护的话,也不能够实现,只能重新开发一个新的软件。

固定款的APP开发时间短,约2~3日的时间即可完成,费用大约在几千到几万之间。

定制款:定制款是指APP的功能全部重新开发,过程比较繁琐,需要美工、策划、APP开发(前台/客户端/手机端)、后台程序员等工种协同完成,大型的、功能复杂的APP甚至需要数十人的团队。

由于APP的功能和设计都是定制的,因此价格会高些。定制款的开发时间与开发价格是成正比的,开发时间长,大约在两三个月甚至不定的周期里才能完成,而费用大概在几万甚至十几万左右。

因此,想要知道开发一款手机APP需要花费多少钱,企业主首先必须把APP的详细需求和功能告知APP开发公司,开发公司才能报出一个合理的价格。

二、手机APP平台不同,制作成本也不一样

现在市面上流行的手机APP制作平台主要有两种一般包括两种系统:安卓系统(Android)和苹果系统(IOS)。

一般来说,制作苹果系统的手机APP软件费用要比安卓平台的贵一些,因为苹果公司对苹果平台的封闭性和手机APP开发语言Objective-C的难度,都让APP开发者加大了苹果系统手机APP开发的难度。

三、APP制作成本包含参与人员的工资

通常情况下,开发一款APP需要产品经理、客户端工程师、后端工程师和UI设计师各一名,这已经是制作手机APP应用软件比较精简的配置了,所以这些参与人员的工资也是包含在APP制作成本当中的。这些工作人员的月薪加起来可能都会超过4、5万元。

四、APP开发公司的所在地

需要注意的是,同样实力的APP开发公司,在不同的城市也会导致APP的成本费用高一些

服务器硬件
其实说起来服务器系统的硬件构成与我们平常所接触的电脑有众多的相似之处,主要的硬件构成仍然包含如下几个主要部分:中央处理器、内存、芯片组、I/O总线、I/O设备、电源、机箱和相关软件。这也成了我们选购一台服务器时所主要关注的指标。
整个服务器系统就像一个人,处理器就是服务器的大脑,而各种总线就像是分布与全身肌肉中的神经,芯片组就像是脊髓,而I/O设备就像是通过神经系统支配的人的手、眼睛、耳朵和嘴;而电源系统就像是血液循环系统,它将能量输送到身体的所有地方。
对于一台服务器来讲,服务器的性能设计目标是如何平衡各部分的性能,使整个系统的性能达到最优。如果一台服务器有每秒处理1000个服务请求的能力,但网卡只能接受200个请求,而硬盘只能负担150个,而各种总线的负载能力仅能承担100个请求的话,那这台服务器得处理能力只能是100个请求/秒,有超过80%的处理器计算能力浪费了。
所以设计一个好服务器的最终目的就是通过平衡各方面的性能,使得各部分配合得当,并能够充分发挥能力。我们可以从这几个方面来衡量服务器是否达到了其设计目的;R:Reliability——可靠性;A:Availability——可用性;S:Scalability——可扩展性;U:Usability——易用性; M:Manageability——可管理性,即服务器的RASUM衡量标准。
由于服务器在网络中提供服务,那么这个服务的质量对承担多种应用的网络计算环境是非常重要的,承担这个服务的计算机硬件必须有能力保障服务质量。这个服务首先要有一定的容量,能响应单位时间内合理数量的服务器请求,同时这个服务对单个服务请求的响应时间要尽量快,还有这个服务要在要求的时间范围内一直存在。
如果一个WEB服务器只能在1分钟里处理1个主页请求,1个以外的其他请求必须排队等待,而这一个请求必须要3分钟才能处理完,同时这个WEB服务器在1个小时以前可以访问到,但一个小时以后却连接不上了,这种WEB服务器在现在的Internet计算环境里是无法想象的。
现在的WEB服务器必须能够同时处理上千个访问,同时每个访问的响应时间要短,而且这个WEB服务器不能停机,否则这个WEB服务器就会造成访问用户的流失。
为达到上面的要求,作为服务器硬件必须具备如下的特点:性能,使服务器能够在单位时间内处理相当数量的服务器请求并保证每个服务的响应时间;可靠性,使得服务器能够不停机;可扩展性,使服务器能够随着用户数量的增加不断提升性能。因此我们说不能把一台普通的PC作为服务器来使用,因为,PC远远达不到上面的要求。这样我们在服务器的概念上又加上一点就是服务器必须具有承担服务并保障服务质量的能力。这也是区别低价服务器和PC的差异的主要方面。
在信息系统中,服务器主要应用于数据库和Web服务,而PC主要应用于桌面计算和网络终端,设计根本出发点的差异决定了服务器应该具备比PC更可靠的持续运行能力、更强大的存储能力和网络通信能力、更快捷的故障恢复功能和更广阔的扩展空间,同时,对数据相当敏感的应用还要求服务器提供数据备份功能。而PC机在设计上则更加重视人机接口的易用性、图像和3D处理能力及其他多媒体性能。

架构师,我想很多人都知道,其实该职位头衔在最早的IT领域是没有的,它是近些年来由互联网的发展所引发的需求,因为现阶段的数据量及高并发的活跃好动,引起了不少传统的技术人员的力不从心,企业愈发关注到了系统架构的重要性,所以不同行业开始招募架构技术人员,架构师就诞生了。

架构设计的条件

以下三个条件不适合做架构设计

对架构不感兴趣,但又迫于需求;

入IT行业,年限小于4年的;

主观能动性弱,又安于现状的;

架构设计的优势

更好的梳理业务的结构体系;

更好的拓展、维护及性能优化;

更好的适应企业业务灵活的推进;

更好的适应大数据的冲洗和应对;

更好的稳定性、低成本及快速迭代;

架构设计时候需要注意的地方

架构设计需要注意的地方,不是怎么把架构搭建起来,而是必须根据业务需求,严格分析,实现该需求需要什么技术会更好及更长远发展的考虑;

另外,构建好的架构虽然可以运行,但是性能需要跟起来,否则架构设计会适得其反,增加不必要的工作量,那么下面就详细介绍下架构设计的策略。

平台的需求

客户需求

在线购物、在线支付或货到付款;

购买商品后,客户可以与客服沟通;

购买商品过程,物流的管理及跟踪;

收取到商品后,商品、物流评价打分;

客户的需求为最高,也代表了企业的核心需求,当然,企业需求还包括其它很多非功能性需求,具体请查看需求梳理部分。

平台的业务架构

根据业务的需求进行子系统模块划分,可以划分为商品子系统、购物子系统、支付子系统、物流子系统、客服子系统、评论子系统;而非核心需求可拆分出客服子系统、评论子系统及接口子系统。另外,根据各个子系统的核心等级,可拆分出核心子系统和非核心子系统,前者包括商品子系统、购物子系统、支付子系统及物流子系统;后者,则包括评论子系统、客服子系统及接口子系统。需要注意的是一般大型电商平台的物流系统是单独分离出来的系统(入库、出库、库存管理、配送管理及货品管理),而这里划分为子系统的主要目的是为演示核心架构,本架构中物流子系统一般作为对接和管理独立子系统的对接模块哦。

1、业务拆分目的

为了解决各个模块子系统间的耦合、维护及拓展性;

方便单独部署子系统,避免集中部署导致一个出问题,全部不能用;

分配专门的团队,负责具体的子系统,最大化工作效率安排;

应对大数据,高压力时,保护核心子系统正常使用;

2、业务的架构图

在上面的业务架构图中,将核心和非核心业务进行拆分,同时每个系统都要独立部署实现,做到大数据量压下,各个系统独立运作,提高可用性,必要时可以暂停掉非核心系统的资源开销,保证核心业务正常为用户服务。

平台的技术架构

在上面业务架构图基础上,我们需要一个技术架构的演变过程,一切只为满足用户的体验和支撑为前提,所以技术架构的搭建不是一蹴而就的,而是随着业务的不断衍变,系统的架构会逐渐完善更新,以实现应对业务数据量的冲击。

1、基本的架构设计

记得很早的时候,很多中小企业所采用的架构设计十分简单,基本使用一台服务器来满足一切需求部署,比如:一台服务器同时用作应用部署、数据库存储以及存储等,不料的是待用户数据达到50万以上,系统出现很多性能问题,尽管对数据库和程序做个各种性能优化,结果仍无明显改善,架构如下:

后来,IT程序猿发现的读写严重影响了系统性能,并将单独存放在独立服务器中,并且在架构中引入了Cache中间件,比如:Memcache,这种做法是可取的,而且比原来性能提高了1-2个性能级别,架构设计如下:

2、初级的架构设计

前几年,一般的电商网站的做法是选用三台服务器,一台部署应用,一台部署数据库,一台部署NFS文件系统,做到将各个规模庞大并耗用性能的部分剥离到不同服务器设备,再配备必要的缓存中间件,基本可以满足近1000万的数据量,具体的架构图如下:

但是,目前主流使用的网站架构已经不同,大多采用集群的方式来实现负载均衡和高可用性,架构可以是下面的样子:

注意:

如果涉及到多台网站服务器的话,就会存在Session如何同步的问题,一般也是最为常用的做法,就是使用Cache中间件来存储和管理Session信息。

3、优化的架构设计

这里为解决高并发,高可用的大型电商网站的架构设计方案,主要采用了分布式、集群、负载均衡、反向代理、消息队列及多级缓存技术。该架构设计方案,是现今比较流程的大型电商网站采用的架构模式,比如:淘宝、京东等,也许会有细微不同的地方,但大同小异哦!具体的架构图方案如下:

平台架构的总结

这里主要总结的是优化架构,架构按层次结构罗列组织,共分为四层,层次分工明确,高拓展,低耦合,负载均衡、集群、分布式及缓存等技术的使用,架构如下:

好了,电商平台的架构设计就介绍到这里,本篇主要是介绍架构设计的思路及应用的核心技术,供在架构设计的同学参考借鉴哦!有想了解更多的可以关注我


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13096757.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-30
下一篇 2023-05-30

发表评论

登录后才能评论

评论列表(0条)

保存