如何利用服务器设计图进行高效开发? (利用 服务器设计图)

随着互联网技术的不断发展,服务器设计图已成为开发者们开发互联网应用的重要工具。然而,如何利用服务器设计图进行高效开发却是一个关键的问题。下面我们将从以下三个方面介绍如何利用服务器设计图进行高效开发。

一、了解服务器设计图的基本概念

对于服务器设计图,我们需要了解它的基本概念。服务器设计图是由服务器端程序员根据特定的业务需求、技术选型、性能要求等综合因素所绘制的一份设计文档,通常由文本、图形、表格等形式组成。服务器设计图扮演着在开发过程中起到重要参考作用的角色,它可以协调前后端开发人员的开发进度,使得项目更加可控。

服务器设计图的内容包括:数据库表设计、API接口定义、服务器端接口逻辑、流程控制等等。在实际应用中,根据具体需求,服务器设计图还可能包括缓存设计、消息推送、服务器集群等模块。

二、利用服务器设计图进行团队协作

服务器设计图是多人合作开发的重要参考资料,因此,如何利用好服务器设计图进行团队协作至关重要。

服务器设计图需要有良好的版本管理,以便多人协作开发。每个人都要有清晰的定位,保证开发工作不会有冲突。需定期召开团队会议,协调接口设计、功能实现等问题。需要整体审查设计图,防止代码注入漏洞等问题,以保证代码质量。

三、利用服务器设计图实现代码复用

由于服务器端代码包含大量的重复性代码,利用服务器设计图实现代码复用,将大幅提升开发效率。例如,通过抽象出公共逻辑,写出结构清晰、可读性强的基础服务类,再在具体业务场景中实现继承重写,即可实现代码复用的目的。在这个过程中,需符合设计图的规范并一直保持对设计文档的更新,从而使得服务器设计图成为指导代码开发的“圣经”。

对于一款优秀的互联网应用来说,基于良好的服务器设计图是必不可少的一步。在设计图的编写、团队协作以及代码复用等方面,都需要我们有系统的思考和严谨的执行,才能为开发者们提供更加高效的开发流程。

相关问题拓展阅读:

什么是服务器

什么是服务器

服务器是计算机的一种,它是网络上一种为客户端计算机提供各种服务的高性能的计算机,它在网络操作系统的控制下,将与其相连的硬盘、磁带、打印机、Modem及各种专用通讯设备提供给网络上的客户站点共享,也能为网络用户提供集中计算、信息发表及数据管理等服务。它的高性能主要体现在高速度的运算能力、长时间的可靠运行、强大的外部数据吞吐能力等方面。

目前,按照体系架构来区分,服务器主要分为两类:ISC(精简指令集)架构服务器:这是使用RISC芯片并且主要采用UNIX操作系统的服务器,如Sun公司的SPARC、HP公司的PA-RISC、DEC的Alpha芯片、SGI公司的MIPS等。

IA架构服务器:又称CISC(复杂指令集)架构服务器,即通常所讲的PC服务器,它是基于PC机体系结构,使用Intel或与其兼容的处理器芯片的服务器,如联想的万全系列、HP的Netserver系列服务器等。

从当前的网络发展状况看,以“小、巧、稳”为特点的IA架构的PC服务器得到了更为广泛的应用。

服务器是一种高性能计算机,作为网络的节点,存储、处理网络上80%的数据、信息,因此也被称为网络的灵魂。做一个形象的比喻:服务器就像是邮局的交换机,而微机、笔记本、PDA、手机等固定或移动的网络终端,就如散落在家庭、各种办公场所、公共场所等处的机。我们与外界日常的生活、工作中的交流、沟通,必须经过交换机,才能到达目标;同样如此,网络终端设备如家庭、企业中的微机上网,获取资讯,与外界沟通、娱乐等,也必须经过服务器,因此也可以说是服务器在“组织”和“领导”这些设备。

服务器的构成与微机基本相似,有处理器、硬盘、内存、系统总线等,它们是针对具体的网络应用特别制定的,因而服务器与微机在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面存在差异很大。尤其是随着信息技术的进步,网络的作用越来越明显,对自己信息系统的数据处理能力、安全性等的要求也越来越高,如果您在进行电子商务的过程中被黑客窃走密码、损失关键商业数据;如果您在自动取款机上不能正常的存取,您应该考虑在这些设备系统的幕后指挥者————服务器,而不是埋怨工作人员的素质和其他客观条件的限制。

服务器技术之EMP技术

目前服务器的技术热点主要有:IRISC与CISC技术、处理器技术、多处理器技术(AMP技术、P技术、MPP技术、COMA技术、集群技术和NUMA技术)、SCSI接口技术、智能I/O技术、容错技术、磁盘阵列技术、热插拔技术、双机热备份。

服务器在网络中承担传输和处理大量数据的任务,要具备高可伸缩性、高可靠性、高可用性和高可管理性。IA-64体系将带动服务器技术特性的提高,如高性能CPU、多处理器技术、枯扰总线和内存技术、容错技术、群集技术、硬件管理接口、均衡服务器平台技术等。

EMP(Emergency Management Port)技术

EMP(Emergency Management Port)技术也是一种远程管理技术,利用EMP技术可以在客户端通过线或电缆直接连接到服务器,来对服务器实施异地操作,如关闭操作系统、启动电源、关闭电源、捕捉服务器屏幕、配置服务器BIOS等操作,是一种很好的实现快速服务和节省维护费用的技术手段。 应用ISC和EMP两种技术可以实现对服务器进行远程监控管理。

服务器技术之RAID冗余磁盘阵列技术

目前服务器的技术热点主要有:IRISC与CISC技术、处理器技术、多处理器技术(AMP技术、P技术、MPP技术、COMA技术、集群技术和NUMA技术)、SCSI接口技术、智能I/O技术、容错技术、磁盘阵列技术、热插拔技术、双机热备份。

服务器在网络中承担传输和处理大量数据的任务,要具备高可伸缩性、高可靠性、高可用性和高可管理性。IA-64体系将带动服务器技术特性的提高,如高性能CPU、多处理器技术、总线和内存技术、容错技术、群集技术、硬件管理接口、均衡服务器羡败薯平台技术等。

RAID(Redundant Array of Independent Disks)冗余磁盘阵列兄者技术

RAID技术是一种工业标准,各厂商对RAID级别的定义也不尽相同。目前对RAID级别的定义可以获得业界广泛认同的有4种,RAID 0、RAID 1、RAID 0+1和RAID 5。

RAID 0是无数据冗余的存储空间条带化,具有成本低、读写性能极高、存储空间利用率高等特点,适用于Video/Audio信号存储、临时文件的转储等对速度要求极其严格的特殊应用。但由于没有数据冗余,其安全性大大降低,构成阵列的任何一块硬盘的损坏都将带来灾难性的数据损失。所以,若在RAID 0中配置4块以上的硬盘,对于一般应用来说是不明智的。

RAID 1是两块硬盘数据完全镜像,安全性好,技术简单,管理方便,读写性能均好。但它无法扩展(单块硬盘容量),数据空间浪费大,严格意义上说,不应称之为”阵列”。

RAID 0+1综合了RAID 0和RAID 1的特点,独立磁盘配置成RAID 0,两套完整的RAID 0互相镜像。它的读写性能出色,安全性高,但构建阵列的成本投入大,数据空间利用率低,不能称之为经济高效的方案。

负载均衡技术概览

当前,无论在企业网、园区网还是在广域网如Internet上,业务量的发展都超出了过去最乐观的估计,上网热潮风起云涌,新的应用层出不穷,即使按照当时更优配置建设的网络,也很快会感到吃不消。尤其是各个网络的核心部分,其数据流量和计算强度之大,使得单一设备根本无法承担,而如何在完成同样功能的多个网络设备之间实现合理的业务量分配,使之不致于出现一台设备过忙、而别的设备却未充分发挥处理能力的情况,就成了一个问题,负载均衡机制也因此应运而生。

负载均衡建立在现有网络结构之上,它提供了一种廉价有效的方法扩展服务器带宽和增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。它主要完成以下任务:解决网络拥塞问题,服务就近提供,实现地理位置无关性 ;为用户提供更好的访问质量;提高服务器响应速度;提高服务器及其他资源的利用效率;避免了网络关键部位出现单点失效。

对一个网络的负载均衡应用,可以从网络的不同层次入手,具体情况要看对网络瓶颈所在之处的具体分析,大体上不外乎从传输链路聚合、采用更高层网络交换技术和设置服务器集群策略三个角度实现。

■传输链路聚合

为了支持与日俱增的高带宽应用,越来越多的PC机使用更加快速的链路连入网络。而网络中的业务量分布是不平衡的,核心高、边缘低,关键部门高、一般部门低。伴随计算机处理能力的大幅度提高,人们对多工作组局域网的处理能力有了更高的要求。当企业内部对高带宽应用需求不断增大时(例如Web访问、文档传输及内部网连接),局域网核心部位的数据接口将产生瓶颈问题,瓶颈延长了客户应用请求的响应时间。并且局域网具有分散特性,网络本身并没有针对服务器的保护措施,一个无意的动作(像一脚踢掉网线的插头)就会让服务器与网络断开。

通常,解决瓶颈问题采用的对策是提高服务器链路的容量,使其超出目前的需求。例如可以由快速以太网升级到千兆以太网。对于大型企业来说,采用升级技术是一种长远的、有前景的解决方案。然而对于许多企业,当需求还没有大到非得花费大量的金钱和时间进行升级时,使用升级技术就显得大材小用了。在这种情况下,链路聚合技术为消除传输链路上的瓶颈与不安全因素提供了成本低廉的解决方案,

链路聚合技术,将多个线路的传输容量融合成一个单一的逻辑连接。当原有的线路满足不了需求,而单一线路的升级又太昂贵或难以实现时,就要采用多线路的解决方案了。目前有4种链路聚合技术可以将多条线路“捆绑”起来。同步IMUX系统工作在T1/E1的比特层,利用多个同步的DS1信道传输数据,来实现负载均衡。IMA是另外一种多线路的反向多路复用技术,工作在信元级,能够运行在使用ATM路由器的平台上。用路由器来实现多线路是一种流行的链路聚合技术,路由器可以根据已知的目的地址的缓冲(cache)大小,将分组分配给各个平行的链路,也可以采用循环分配的方法来向线路分发分组。多重链路PPP,又称MP或MLP,是应用于使用PPP封装数据链路的路由器负载平衡技术。MP可以将大的PPP数据包分解成小的数据段,再将其分发给平行的多个线路,还可以根据当前的链路利用率来动态地分配拨号线路。这样做尽管速度很慢,因为数据包分段和附加的缓冲都增加时延,但可以在低速的线路上运行得很好。

链路聚合系统增加了网络的复杂性,但也提高了网络的可靠性,使人们可以在服务器等关键LAN段的线路上采用冗余路由。对于IP系统,可以考虑采用VRRP(虚拟路由冗余协议)。VRRP可以生成一个虚拟缺省的网关地址,当主路由器无法接通时,备用路由器就会采用这个地址,使LAN通信得以继续。总之,当主要线路的性能必需提高而单条线路的升级又不可行时,可以采用链路聚合技术。

更高层交换

大型的网络一般都是由大量专用技术设备组成的,如包括防火墙、路由器、第2层/3层交换机、负载均衡设备、缓冲服务器和Web服务器等。如何将这些技术设备有机地组合在一起,是一个直接影响到网络性能的关键性问题。现在许多交换机提供第四层交换功能,可以将一个外部IP地址映射为多个内部IP地址,对每次TCP连接请求动态使用其中一个内部地址,达到负载均衡的目的。有的协议内部支持与负载均衡相关的功能,例如HTTP协议中的重定向能力。

Web内容交换技术,即URL交换或七层交换技术,提供了一种对访问流量的高层控制方式。Web内容交换技术检查所有的HTTP报头,根据报头内的信息来执行负载均衡的决策,并可以根据这些信息来确定如何为个人主页和图像数据等内容提供服务。它不是根据TCP端口号来进行控制的,所以不会造成访问流量的滞留。如果Web服务器已经为图像服务、SSL对话、数据库事务服务之类的特殊功能进行了优化,那么,采用这个层次的流量控制将可以提高网络的性能。目前,采用第七层交换技术的产品与方案,有黎明网络的iSwitch、交换机,Cisco的CDN(内容交换网络系统)等。

服务器群集解决方案

在某些情况下,例如,某网站内部职员和外部客户同时使用网站,而公司要将内部职员的服务请求连接到一个较慢的服务器来为外部客户提供更多的资源,这时就可以使用Web内容交换技术。Web主机访问控制设备也可以使用这种技术来降低硬件成本,因为它可以轻易地将访问多个主机的用户流量转移给同一个Web服务器。如果用户访问量增加到一定程度,这些流量还可以被转移到专用的Web服务器设备,虽然这种专用设备的成本较高,但是由于使用的是相同的Web内容交换技术来控制流量,所以网络的结构框架就不用再进行改变了。

但是,使用Web内容交换技术的负载均衡设备所能支持的标准和规则的数目有限,其采用的标准和规则的灵活性也有限。另外,负载均衡设备所能监测到HTTP报头的深度也是限制内容交换能力的一个因素。如果所要找的信息在负载均衡设备所不能监测的字段内,那内容交换的作用就无法发挥。而且,内容交换还受到能够同时开启的TCP连接数量以及TCP连接的建立和断开比率的限制。另外,Web内容交换技术还会占用大量的系统资源(包括内存占用和处理器占用)。对Web内容交换技术进行的测试表明,操纵Web内容的吞吐量是很费力的,有时只能得到很小的性能改进。所以,网络管理员必须认真考虑投入与回报的问题。

■带均衡策略的服务器群集

如今,服务器必须具备提供大量并发访问服务的能力,其处理能力和I/O能力已经成为提供服务的瓶颈。如果客户的增多导致通信量超出了服务器能承受的范围,那么其结果必然是――宕机。显然,单台服务器有限的性能不可能解决这个问题,一台普通服务器的处理能力只能达到每秒几万个到几十万个请求,无法在一秒钟内处理上百万个甚至更多的请求。但若能将10台这样的服务器组成一个系统,并通过软件技术将所有请求平均分配给所有服务器,那么这个系统就完全拥有每秒钟处理几百万个甚至更多请求的能力。这就是利用服务器群集实现负载均衡的最初基本设计思想。

早期的服务器群集通常以光纤镜像卡进行主从方式备份。令服务运营商头疼的是关键器或应用较多、数据流量较大的服务器一般档次不会太低,而服务运营商花了两台服务器的钱却常常只得到一台服务器的性能。新的解决方案见图,通过LSANT(Load Sharing Network Address Transfer)将多台服务器网卡的不同IP地址翻译成一个VIP(Virtual IP)地址,使得每台服务器均时时处于工作状态。原来需要用小型机来完成的工作改由多台PC服务器完成,这种弹性解决方案对投资保护的作用是相当明显的――既避免了小型机刚性升级所带来的巨大设备投资,又避免了人员培训的重复投资。同时,服务运营商可以依据业务的需要随时调整服务器的数量。

网络负载均衡提高了诸如Web服务器、FTP服务器和其他关键任务服务器上的因特网服务器程序的可用性和可伸缩性。单一计算机可以提供有限级别的服务器可靠性和可伸缩性。但是,通过将两个或两个以上高级服务器的主机连成群集,网络负载均衡就能够提供关键任务服务器所需的可靠性和性能。

为了建立一个高负载的Web站点,必须使用多服务器的分布式结构。上面提到的使用代理服务器和Web服务器相结合,或者两台Web服务器相互协作的方式也属于多服务器的结构,但在这些多服务器的结构中,每台服务器所起到的作用是不同的,属于非对称的体系结构。非对称的服务器结构中每个服务器起到的作用是不同的,例如一台服务器用于提供静态网页,而另一台用于提供动态网页等等。这样就使得网页设计时就需要考虑不同服务器之间的关系,一旦要改变服务器之间的关系,就会使得某些网页出现连接错误,不利于维护,可扩展性也较差。

能进行负载均衡的网络设计结构为对称结构,在对称结构中每台服务器都具备等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。然后,可以通过某种技术,将外部发送来的请求均匀分配到对称结构中的每台服务器上,接收到连接请求的服务器都独立回应客户的请求。在这种结构中,由于建立内容完全一致的Web服务器并不困难,因此负载均衡技术就成为建立一个高负载Web站点的关键性技术。

总之,负载均衡是一种策略,它能让多台服务器或多条链路共同承担一些繁重的计算或I/O任务,从而以较低成本消除网络瓶颈,提高网络的灵活性和可靠性。

高端服务器技术

服务器性能指标以系统响应速度和作业吞吐量为代表。响应速度是指用户从输入信息到服务器完成任务给出响应的时间。作业吞吐量是整个服务器在单位时间内完成的任务量。假定用户不间断地输入请求,则在系统资源充裕的情况下,单个用户的吞吐量与响应时间成反比,即响应时间越短,吞吐量越大。为了缩短某一用户或服务的响应时间,可以分配给它更多的资源。性能调整就是根据应用要求和服务器具体运行环境和状态,改变各个用户和服务程序所分配的系统资源,充分发挥系统能力,用尽量少的资源满足用户要求,达到为更多用户服务的目的。

技术目标

服务器所要求的高扩展性、高可用性、易管理性、高可靠性不仅是厂商追求的技术目标,也是用户所需求的。

可扩展性具体表现在两个方面:一是留有富余的机箱可用空间,二是充裕的I/O带宽。随着处理器运算速度的提高和并行处理器数量的增加,服务器性能的瓶颈将会归结为PCI及其附属设备。高扩展性意义在于用户可以根据需要随时增加有关部件,在满足系统运行要求同时,又保护投资。

服务器是一种高性能计算机,作为网络的节点,存储、处理网络上80%的数据、信息,因此也被称为网络的灵魂。做一个形象的比喻:服务器就像是邮局的交换机,而微机、笔记本、PDA、手机等固定或移动的网络终端,就如散落在家庭、各种办公场绝培所、公共场所等处的机。我们与外界日常的生活、工作中的交流、沟通,必须经过交换机,才能到达目标;同样如此,网络终端设备如家毁拆庭、企业中的微机上网,获取资讯,与外界沟通、娱乐等,也必须经过服务器,因此也可以说是服务器在“组织”和“领导”这些设备。

服务器的构成与微机基本相似,有处理器、硬盘、内存、系统总线等,它们是针对具体的网络应用特别制定的,因而服务器与微机在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面存在差异很大。尤其是随着信息技术的进步,网络的作用越来越明显,对自己信息系统的数据处理能力、安全性等的要求也越来越高,如果您在进行电子商务的过程中被黑客窃走并余唯密码、损失关键商业数据;如果您在自动取款机上不能正常的存取,您应该考虑在这些设备系统的幕后指挥者————服务器,而不是埋怨工作人员的素质和其他客观条件的限制。

这个问题就有些大了,泰海志胜整理觉得,服务器是计算机的一种,它是网络上一种为客户端计算机提供各种厅者服务的高性能的计算机,它在网络操作系统的控制下,将与其相连的硬盘、磁带、打印机、Modem及各种专用通讯设备提供给网络上的客户站点共享,也能为网络用户提供集中计算、信息发表及数据管理等服务。它的高扮含薯性能主要体现在高速度的运算能力、长时间的可靠运行、强大的外部数据吞吐能力等方面。你也可以了解下云服务去器,物理服务器,服务器是计算机的一种,它是网络上一种为客户端计算机提供各种服务的高性能的计算机,老碰它在网络操作系统的控制下,将与其相连的硬盘、磁带、打印机、Modem及各种专用通讯设备提供给网络上的客户站点共享,也能为网络用户提供集中计算、信息发表及数据管理等服务。它的高性能主要体现在高速度的运算能力、长时间的可靠运行、强大的外部数据吞吐能力等方面。

在香港和台湾称为伺服器是指:

一个管理资源并为用户提供服务的计算机软件,通常分为文件服务器(能使用户在其它计算机存取文件),数据库服务器和应用程序服务器。

定义

有时,这两种定义会引起混淆,如Web服务器。它可能是指用于网站的计算机,也可能是指像Apache这样的软件,运行在这样的计算机上以管理网郑茄厅页组件和回应网页浏喊隐览器的请求。

服务器硬件

服务器作为硬件来说,通常是指那些具有较高计算能力,能够提供给多个用户使用的硬件。服务器与PC机不同,PC机通常只为一个用户服务。 服务器与主机不同,主机是通过提供终端给用户使用的,服务器是通过网络提供给客户端用户使用的。

根据不同的计算能力,服务器又分为工作组级服务器,部门级服务器和企业级 服务器操作系统是指运行在服务器硬件上的操作系纳渣统。服务器操作系统需要管理和充分利用服务器硬件的计算能力并提供给服务器硬件上的软件使用。

常见的服务器作业系统有FreeBSD, SCO OPENSERVER ,OpenBSD, NetBSD, SUN Solaris, Linux, Windows NT/2023,Mac OS X Server等。

其中以Linux,Windows NT/2023/Server 2023,SOLARIS最为常见,Mac OS X Server是新兴力量。其中FreeBSD, OpenBSD, NetBSD, SUN solaris, Linux, Mac OS X Server等是UNIX操作系统的衍生版本。

服务器软件

服务器软件的定义如前面所述,服务器软件工作在客户端-服务器或浏览器-服务器的方式,

有很多形式的服务器,常用的包括:

文件服务器 – 如Novell的NetWare

数据库服务器 – 如Oracle数据库服务器, MySQL, PostgreSQL, Microsoft SQL Server等

邮件服务器 – Sendmail, Postfix, Qmail, Microsoft Exchange,Lotus Domino等

Web服务器 – 如Apache, thttpd, 微软的IIS等

FTP服务器 – Pureftpd, Proftpd, WU-ftpd, Serv-U等

应用服务器 – 如Bea公司的WebLogic,JBoss

用什么工具画 软件架构设计图

软件握段架构图,又可以叫流程图或原型图之类的, 这方面的可以直接用流程图或原型图工具呢。

原型图工具的话,国内外比较普遍的是Axure,相对专业全面。当因为是国外的工具, 同步和协作方面的功能,还是有些鸡肋的。

想轻松快速绘制原型图或流程图的话,摹客Mockplus也不错。提供强大组件、图标伍晌和模板库,简单拖拽,几分钟就能快速制作原型段橘誉图或流程图,在线实时协作、评论、反馈搜集也都能轻松实现。

1、Microsoft

Office Visio

Office Visio 是office软件系列中的负责绘制流程图和示意图的软件,是一款便于IT和商务人员就复杂信息、系统和流程进行可视化处理、分析和交流的软件。

2、ProcessOn

是一款网页版的在线作图工具,优点是无需下载安装、破解这些破事,同时支持在线协作,可以多颤携人同时对一个文件协作编辑,而且上手比较容易,它提供很多流程图模版,可以方便的画出流程图、

思维导图

、原型图、

UML图

3、OmniGraffle

OmniGraffle可以用来绘制图表,流程图,组织结构图以及插图,也可以用来组织头脑中思考的信息,组织

头脑风暴

的结果,绘制

心智图

,作为样式管理器,或设计网页或PDF文档的原型。只能于运行在

Mac OS X

和iPad平台之上。

4、亿图

是一款基于矢量的绘图工具,包含大量的事例库和模板库。可以很方便的绘制各种专业的业务流程图、组织结构图、商业图表、

程序流程图

、数据流程图、工程管理图、软件设计图、网络拓扑图等等。

5、Axure RP

Axure RP是美国Axure Software Solution公司旗舰产品,是一个专业的快速原型设计工茄棚伏具和神,让负责定义需求和规格、设计功能和界面的专家能够快速创建应用软件或Web网站的线框图、流程图、原型和规格说明文档。

 UIDesigner是腾讯用户研究与体验设计部(CDC)设计研发的一款设计类软件,打造一款可以让设计师统一平台和团队协作的平台型设计工具,经过1.0和2.0版本的经验沉淀,我们决定对3.0版本进行全新的架构设计。

  开发一个软件系统腊雀,前期的架构设计承载着整个软件的设计思想和关键决策,可以说是重中之重。

  根据软件架构设计思想,关注分割和交互,好的架构必须使每个关注点相互分离。我们进行了最基本的需求分析,得出两个关注点:一是工具,二是设计绘图,关系如图1所示。

 得到最基本的两个关注点后,接着将提取关键需求(包括:关键功能需求、宏肢关键质量需求和关键商业需求),根据两个关注点进行架构的细化设计。

一、关注点——工具

  这里我们结合UIDesigner的实际需求,提取出属于“工具”范畴的关键功能需求、关键质量需求和关键商业需求。

  首先,“工具”的关键功能需求,必须包括:磁盘文件读写、异常捕捉、日志记录、安全性管理;非工具所必须,但是UIDesigner本身所要求的,包括:配置管理、缓存管理、线程服务、服务器和客户端通讯管理、国际化服务。

  其次,“工具”的关键质量需求,质量需求包括开发期质量需求和运行期质量需求两部分,经过分析和权衡,UIDesigner的性能主要取决于设计绘图,而稳定性、可扩展性和可维护性才是决定“工具”本身发展的质量需求,因此,对“工具”的质量需求设计将以稳定性、可扩展性和可维护性为主。

  最后,“工具”的关键商业需求,因为UIDesigner本身并没有很复杂的业务需求,因此关键商业需求是在设计流程的优化和规范上得到体现,这方面的设计已经属于高层模块和使用流程的设计,对架构的影响非常小,可以暂时性的忽略。

  经过蔽局世关键需求的提取,我们得到了“工具”的设计目标——可以提供通用功能(关键功能需求)的高稳定性、扩展性和维护性的客户端应用。根据此目标,我们采取了DI(Dependency-Injection)和MVP(Model-View-Presenter)结合的架构,概念架构设计如图2所示。

亿纤态陵图图示 visio UIDesigner Edraw max PlantUML等等毁戚,有许多这样的软件闭哗,各有各的优点。

可以采用UIDesigner软件

结合UIDesigner的实际需求,提取出属于“工具”范畴的关键功能需求、关键质量需求和关键商业需求。

1.“工具”的关键功能需求,必须包括:磁盘文件读写、异常捕捉、日志记录、安全性管理;非工具所必须,但是UIDesigner本身所要求的,包括:配置管宽灶租理、缓存管理、线程服务、辩罩服务器和客户端通讯管理、国际化服务。

2.“工具”的关键质量需求,质量需求包括开发期质量需求和运行期质量需求两部分,经过分析和权衡,UIDesigner的性能主要取决于设计绘图,而稳定性、可扩展性和可维护性才是决定“工具”本身发展的质量需求,因此,对“工具”的质量需求设计将以稳定性、可扩展性和可维护性为主。

3.“工具”的关键商业需求,因为UIDesigner本身并慎兆没有很复杂的业务需求,因此关键商业需求是在设计流程的优化和规范上得到体现,这方面的设计已经属于高层模块和使用流程的设计,对架构的影响非常小,可以暂时性的忽略。

经过关键需求的提取,我们得到了“工具”的设计目标——可以提供通用功能(关键功能需求)的高稳定性、扩展性和维护性的客户端应用。根据此目标,我们采取DI(Dependency-Injection)和MVP(Model-View-Presenter)结合的架构,概念架构设计如图2所示。

如何搭建大型网站系统?

程序员们都希望能通过自己的努力学习,技术提升,拿到更好的收入,技术提升和高收入虽然不是轻易就能实现的,但总是有章可循。

一个成熟的大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性,它总是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也发生了很大的变化,就连技术人员也从几个人发展到一个部门甚至一条产品线。所以成熟的系统架构是随业务扩展而完善出来的,并不是一蹴而就;不同业务特征的系统,会有各自的侧重点,例如淘宝,要解决海量的商品信息的搜索、下单、支付,例如腾讯,要解决数亿的用户实时消息传输,百度它要处理海量的搜索请求,他们都有各自的业务特性,系统架构也有所不同。尽管如此我们也可以从这些不同的网站背景下,找出其用的技术,这些技术和手段可以广泛运行在大型网站系统的架构中,下面就通过介绍大型网站系统的演化过程,来认识这些技术和手段。

一、最开始的网站架构

最初的架构,应散基用程序、数据库、文件都部署在一台服务器上,如图:

 

二、应用、数据、文件分离

随着业务的扩展,一台服务器已经不能满足性能需求,故将应用程序、数据库、文件各自部署在独立的服务器上,并且根据服务器的用途配置不同的硬件,达到更佳的性能效果。

 

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

在硬件优化性能的同时,同时也通过软件进行性能优化,在大部分的网站系统中,都会利用缓存技术改善系统的性能,使用缓存主要源于热点数据的存在,大部分网站访问都遵循28原则(即80%的访问请求,最终落在20%的数据上),所以我们可以对热点数据进行缓存,减少这些数据的访问路径,提高用户体验。

缓存实现常见的方式是本地缓存、分布式缓存。当然还有CDN、反向代理等,这个后面再讲。本地缓存,顾名思义是将数据缓存在应用服务器本地,可以存在内存中,也可以存在文件,OSCache就是常用的本地缓存组件。本地缓存的特点是速度快,但冲薯谨因为本地空间有限所以缓存数据量也有限。分布式缓存的特点是,可以缓存海量的数据,并且扩展非常容易,在门户类网站中常常被使用,速度按理没有本地缓存快,常用的分布式缓存是Memcached、Redis。

四、使用集群改善应用服务器性能

应用服务器作为网站的入口,会承担大量的请求,我们往往通过应用服务器集群来分担请求数。应用服务器前面部署负载均衡服务器调度用户请求,根据分发策略将请求分发到多个应用服务器节点。

 

常用的负载均衡技术硬件的有F5,价格比较贵,软件的有LVS、Nginx、HAProxy。LVS是四层负载均衡,根据目标地址和端口选择内部服务器,Nginx是七层负载均衡和HAProxy支持四层、七层负载均衡,可以根据报文内容选择内部服务器,因此LVS分发路径优于Nginx和HAProxy,性能要高些,而Nginx和HAProxy则更具配置性,如可以用来做动静分离(根据请求报文特征,选择静态资源服务器还是应用服务器)。

五、数据库读写分离和分库分表

随着用户量的增加,数据库成为更大的瓶颈,改善数据库性能常用的手段是进行读写分离以及分表,读写分离顾名思义就是将数据库分为读库和写库,通过主备功能实现数据同步。分库分表则分为水平切分和垂直切分,水平切换则是对一个数据库特大的表进行拆分,例如用户表。垂直切分则是根据业务不同来切换,如用户业务、商品业务相关的表放在不同的数据库中。

 

六、使用CDN和反向代理提高网站性能

假如我们的服务器都部署在成都的机房,对于四川的用户来说访问是较快的,而对于北京的用户访问是较慢的,这是由于四川和北京分别属于电信和联通的不同发达地区,北京用户访问需要通过互联路由器经过较长的路径才能访问到成都的服务器,返回路径也一样,所以数据传输时间比较长。对于这种情况,常常使用CDN解决,CDN将数据内容缓存到运营商的机房,用户访问时先从最近的运营商获取数据,这样大大减少了网络访问的路径。比较专业的CDN运营商有蓝汛、网宿。

而反向代理,则是部署在网站的机房,当用户请求达到时首先访问反向代理服务器,反向代理服务器将缓存的数据返回给用户,如果没有没有缓手册存数据才会继续走应用服务器获取,也减少了获取数据的成本。反向代理有Squid,Nginx。

 

七、使用分布式文件系统

用户一天天增加,业务量越来越大,产生的文件越来越多,单台的文件服务器已经不能满足需求。需要分布式的文件系统支撑。常用的分布式文件系统有NFS。

 

八、使用NoSql和搜索引擎

对于海量数据的查询,我们使用nosql数据库加上搜索引擎可以达到更好的性能。并不是所有的数据都要放在关系型数据中。常用的NOSQL有mongodb和redis,搜索引擎有lucene。

 

九、将应用服务器进行业务拆分

随着业务进一步扩展,应用程序变得非常臃肿,这时我们需要将应用程序进行业务拆分,如百度分为新闻、网页、图片等业务。每个业务应用负责相对独立的业务运作。业务之间通过消息进行通信或者同享数据库来实现。

 

十、搭建分布式服务

这时我们发现各个业务应用都会使用到一些基本的业务服务,例如用户服务、订单服务、支付服务、安全服务,这些服务是支撑各业务应用的基本要素。我们将这些服务抽取出来利用分部式服务框架搭建分布式服务。淘宝的Dubbo是一个不错的选择。

 

大型网站的架构是根据业务需求不断完善的,根据不同的业务特征会做特定的设计和考虑,本文只是讲述一个常规大型网站会涉及的一些技术和手段。

如果你还有这些疑问,成熟的网站架构师需要学什么核心技能?Java程序员如何晋升为互联网架构师?Java语言在架构搭建中扮演什么角色?怎样成为年收入几十万的架构师?欢迎来电来访昌平北大青鸟java培训。

关于利用 服务器设计图的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 如何利用服务器设计图进行高效开发? (利用 服务器设计图)