最新网站架构
方案
xxx市xxxxx网管理中心
火
车
票
网
络
订
票
系
统
方
案
二零一二年二月
1 总体设计说
明 ............................................................................................................................... 2
1.1 项目概
述 ........................................................................................................................... 2
1.2 建设目
标 ........................................................................................................................... 2
1.3 建设原
则 ........................................................................................................................... 2
2 系统需求分
析 ............................................................................................................................... 3
2.1 服务器集
群 ....................................................................................................................... 3
2.2 负载均
衡 ........................................................................................................................... 3
2.3 数据库集群与库
散
列 ................................................................................................... 3
2.4 划分服务
器 .................................................................................................................... 4
2.5 不同网络用户的访问问
题 ........................................................................................... 4
3 系统架构设
................................................................................................................ 4 计 ...............
3.1 网站物理架
构 ................................................................................................................ 4
3.2 Web应用开发架
构 ......................................................................................................... 5
3.3 网络拓扑结
构 ................................................................................................................ 6
4 架构方案所涉及的技
术 ............................................................................................................... 7
4.1 负载均
衡 ......................................................................................................................... 7
4.2 页面静态
化 ....................................................................................................................... 8
4.3 MVC架
构 .......................................................................................................................... 9
4.4 CDN和镜像网站技
术 .................................................................................................. 10
5 网站的硬件扩容和升
级 ............................................................................................................. 11
5.1 增加服务
器 ..................................................................................................................... 11
5.2 升级服务
器 .................................................................................................................. 11
5.3 增加存
储 ....................................................................................................................... 11
5.4 网络扩
容 ....................................................................................................................... 12
1
实习生:XXX 火车票网络订票系统设计方案
1 总体设计说明
1.1 项目概述
本次火车票网络订票系统项目是因为当前铁路局网上订票系统设计不合理造
成用户订票难等原因而要求重新设计的。我们先前的火车票网络订票系统最主要
的问题是在遭受高负载的情况下系统不能正常的运行,所以此问题也是该方案所
要重点解决的。当此项目建成后,我们的火车票网络订票系统将大大减轻实地售
票系统、电话订票系统的压力,使用户足不出户就能享受快速、高效的订票服务。
1.2 建设目标
该订票系统的设计要能解决当前网络订票系统订票难的问题,在高负载情况下
要保证系统的正常工作。系统的建设要符合国家标准,必须要能满足当前大量用
户的订票需求,能承受或杜绝同一个用户频繁对页面的点击所产生的流量。充分
发挥订票系统的作用和效益。该系统采用先进成熟的技术进行建设并能根据需要
为以后系统的升级做好准备。
1.3 建设原则
1.3.1 实用性
本次火车票订票系统要根据当前用户订票需求情况和系统未来的
进行设
计。结合实际使系统的性价比达到最高。
1.3.2 可靠性
系统的设计要使之能长期稳定的运行,当遇到问题的时候还要能够快速有效的恢复。
1.3.3 安全性
确保系统的线路设计和设备是否能安全正常工作,保证用户信息不向外泄漏。
1.3.4 兼容性与扩展性
本次网络订票系统的设计上采用先进成熟的技术设备,以保障系统的高效运行,也是为系统的扩充和升级做好准备。
1.3.5 专业性
系统的设计遵照国家标准,符合国家要求。
1.3.6 易管理性
系统的设计要便于管理,方便日常维护中的操作。
2
2 系统需求分析
由于火车票网络订票系统建成后是为我们中国13亿人提供订票服务的,将不可避免的遭受由大量网页点击造成的网络高流量、高负载的情况。所以要求此系统要能克服这种严重的状况,保证整个系统正常、安全、可靠的运行。最终方便用户订票。
为了满足以上要求,该方案需要采取服务器集群、负载均衡、数据库划分、图片服务器分离等,不仅如此,还要考虑不同网络用户的访问问题。
2.1 服务器集群
服务器集群就是指把很多的服务器统一集中起来进行同一种服务,在客户端看起来就像是只有一个服务器在提供服务。集群可以利用多个计算机进行并行计算从而获得更高的计算速度,也可以使用多个计算机做备份,并且能使其中一台计算机坏了后整个系统依然能正常运行。此系统采用服务器集群技术,集群内的服务器能并发的处理来自网络的访问请求,当访问量过大时,各服务器共同承担访问处理的任务,这将大幅的提高系统的工作效率。除此之外,还可以根据需求添加集群中服务器的数量以增大集群的处理能力。
2.2 负载均衡
负载均衡就是把从网络中传输进系统的流量根据系统的实际工作情况进行分流和划分,然后再传输到各服务器进行处理。在此方案中将采用负载均衡器和Squid/Nginx反向代理服务器实现此功能,负载均衡器需要被放置在临近服务器集群的位置。由于采用的是服务器集群技术,但当网站系统访问量很大时,Web服务器集群里的各个服务器压力都会很大,所以我们使用负载均衡器来管理这些访问请求,把这些访问请求传输给集群中有空闲资源的服务器进行处理。这样就能充分的利用服务器集群的优势,不至于因为集群内一台服务器资源耗尽或出现故障而中断服务。
2.3 数据库集群与库表散列
数据库服务器在整个系统的地位非常的重要,因为网站的瓶颈问题大都出现在数据库身上。大型网站都有复杂的应用,这些应用必须使用数据库,在面对大量访问的时候,数据库的瓶颈很快就能显现出来,这时一台数据库将很快无法满足
应用,于是我们需要使用数据库集群或者库表散列。
1. 数据库集群 在数据库集群方面,不同类型的数据库都有自己不同的解决方案,使用了什么样的数据库,就参考相应的解决方案。
2. 库表散列
在应用程序中安装业务和应用或者功能模块将数据库进行分离,不同的 3
模块对应不同的数据库或者表,再按照一定的策略对某个页面或者功能进行更小的数据库散列,这样就能够低成本的提升系统的性能并且有很好的扩展性。
2.4 划分服务器
按服务器种类来划分,我们一般把服务器划分为:图片服务器、页面服务器、数据库服务器、应用服务器、日志服务器等。对于访问量大的网站而言,分离单独的服务器是非常必要的。分离服务器后各个服务器只需要完成各自的功能和处理任务,这样把工作细化后系统的整体运行效率也会提升很多。
2.5 不同网络用户的访问问题
由于处于不同网络服务商的计算机想要相互通讯会比在同一网络服务商的计算机慢。为了解决此问题,本系统将通过引入CDN和镜像网站技术来解决不同网络服务商的接入速度问题。
3 系统架构设计
3.1 网站物理架构
整个系统架构组成如图所示,该架构有负载均衡器、Nginx代理服务器集群 4
或Squid代理服务器集群以及其他种类的服务器集群。这样的架构设计能够使该系统在高负载的情况下依然能正常工作,同时系统的安全性因为有代理服务器集群的存在也会得到相当大的提高。
3.1.1架构中的代理服务器
代理服务器是介于客户端和Web服务器之间的另一种服务器的存在,有了它之后,浏览器不能直接到Web服务器去取回网页,而是向代理服务器发出请求,信号会先传送到代理服务器,由代理服务器来取回浏览器所需要的信息并传回浏览器。
很多代理服务器都有很大的存储空间,它能不断的将新取得的数据存储到它本机的存储器上,如果浏览器所请求的数据在它本机存储器上有而且是最新的,那么它就不再从Web服务器上读取数据,而是直接将存储器上的数据直接传送给用户的浏览器,起到系统缓存的作用。这样就能显著的提高浏览器的速度和效率。
除了缓存功能之外,代理服务器还能连接内网与Internet充当防火墙。这是因为所有内部的主机通过代理服务器访问外界时,只映射为一个IP地址,所以外界不能直接访问到内部网络;同时还可以设置IP地址过滤,限制内外网络之间
的相互访问。所以本系统中采用代理服务器集群技术是对整个系统的安全是大有裨益的。
3.1.2 架构中的Web服务器
Web服务器是指驻留于因特网上某类计算机的的程序。当客户端的Web浏览器连接到服务器上并请求文件时,服务器将处理该请求并将文件发送到浏览器上,文件附带的信息(文件类型)会告诉浏览器如何查看该文件。服务器使用Http超文本传输协议进行信息交流。Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息基础上运行程序。
3.1.3 图片服务器分离
对于Web服务器来说,不管是Apache、IIS还是其他容器,图片是最消耗资源的,于是我们有必要将图片与页面进行分离。这样的架构可以降低提供页面访问请求的服务器系统压力,并且可以保证系统不会因为图片问题而崩溃。
3.2 Web应用开发架构
Web应用开发采用MVC架构。把各种应用程序划分为视图、模型和控制三部分。大部分Web应用程序都是用像ASP,PHP,或者CFML这样的语言来创建的。它们将像数据库查询语句这样的数据层代码和像HTML这样的表示层代码混在一起。要想使用多种方式来访问我们的应用程序,就必须要把数据从表示层中分离开来,如此就要运用到MVC架构。
5
如图:
现在科技的发展和用户需求不断的提升要求我们提供越来越多的方式来访问应用程序。MVC模式允许用户使用各种不同样式的视图来访问同一个服务器端的代码。它包括任何WEB(HTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。例如,很多数据可能用HTML来表示,但是也有可能用WAP来表示,而这些表示所需要的命令是改变视图层的实现方式,而控制层和模型层无需做任何改变。
3.3 网络拓扑结构
主防火墙
备防火墙
磁盘阵列柜磁盘阵列柜
6
3.3.1 采用双防火墙双交换机,保障平台服务
本系统采用双防火墙接通互联网,在任何一个防火墙或者互联网发生故障后都可以自动的将流量切换到另一端,保证网站的正运行,设备或网络的故障恢复后,自动恢复先前的运行状况。不但如此,系统所采用的双千兆交换机分别接在2台防火墙上,当其中某台设备或者网络链路发生故障后,好的设备自动接管已坏设备的工作,不影响网站的整体运行,根据真实服务器的数量,交换机还可以随时增加。
3.3.2 采用硬件设备负载均衡器,实现网络流量的负载均衡
使用硬件设备负载均衡器,将网络流量均衡的分担到WEB服务器集群的各节点服务器,保障平台服务器资源均衡的使用。
3.3.3 采用数据库集群和库表散列
本系统采用了数据库集群和库表散列技术,将大幅提高数据库的存取和查询的处理能力,不仅如此,在本方案中还为集群配置了磁盘阵列,可以在极大程度上
增加数据库的存储空间。
4 架构方案所涉及的技术
4.1 负载均衡
4.1.1 基于DNS的负载均衡
DNS负载均衡技术是最早的解决负载均衡的技术。主要是这样实现的,由于在DNS服务器中可以为不同的网络地址配置同一个域名,在DNS服务器进行解析时,它随即的得到其中一个地址。所以对于同一个域名它所解析出的地址是会不同的,用户也就访问不了同地址的Web服务器,从而在一定程度上能起到均衡负载的作用。但基于DNS的负载均衡不是真正意义上的负载均衡,由于DNS服务器在进行地址解析时不会考虑到当前Web服务器的负载情况,如果其中一台Web服务器出现了故障,DNS服务器仍然回把地址解析到此台出现故障的服务器上,导致不能响应客户端。所以在这种情况下必然会导致很大一部分用户不能享受服务器所提供的服务。
4.1.2 基于硬件四层交换的负载均衡
本网站架构就使用了基于硬件四层交换的硬件设备,在硬件四层交换产品中有很多的产品可以选择,大多数的这些产品都是比较昂贵的,但都能提供与之相符合的功能,都是物有所值的。
4.1.3 基于软件四层交换的负载均衡
软件四层交换的均衡负载可以使用Linux操作系统中的LVS来解决。
4.1.4 通过反向代理服务器来实现负载均衡
反向代理服务器又称为Web加速服务器,它位于Web服务器的前端,充当WEB 7
服务器的内容缓存器,反向代理服务器是专门针对Web服务器设置的,在后台运行的Web服务器对互联网用户是透明的、不可见的,用户只能看到反向代理服务器的网络地址,但却不清楚后台的Web服务器是如何组织架构的。当互联网用户请求Web服务时,DNS服务器将所请求的域名解析为反向代理服务器的IP地址,这样 URL请求将会被发送到反向代理服务器,由反向代理服务器负责处理用户的请求与应答并与后台Web服务器进行交互。如此就利用反向代理服务器减轻了后台Web服务器的负载,提高了访问速度,同时也避免了因用户直接与Web服务器通信带来的安全隐患。
如图所示:
目前有许多反向代理软件,比较有名的有Nginx和 Squid。
4.2 页面静态化
4.2.1 什么是静态页面
静态页面是网页的代码都在页面中,不需要执行asp,php,jsp,.net等程序生成客户端网页代码的网页。静态页面不能自主管理发布更新页面。常见的静态页面有
以.html扩展名结尾的、.htm扩展名结尾的页面。还有一点是必须注意的,静态页面并非是网页上没有动画就是静态页面。
4.2.2 什么是动态页面
动态页面是通过执行asp,php,jsp,.net等程序生成客户端网页代码的网页。动态页面通常可以通过网站后台管理系统对网站内容进行更新管理。发布新闻,发布
公司产品,交流互动,博客,网上调查等,这都是动态网站的一些功能, 8
也是我们经常使用的。动态页面常见的扩展命有asp,php,jsp,cgi,.aspx等。当中需要我们注意的是动态页面的动态是指网站与客户端用户互动的意思,而并非网页上有动画就是动态页面。
4.2.3 页面静态化
静态的HTML页面严格地由标准的HTML标示语言构成,并不需要服务器端即时运算生成。这意味着对一个静态HTML文档发出访问请求后,服务器端只是简单地将该文档传输到客户端。从服务器运行的那个时间片来看,这个传输过程仅仅占用了很小的CPU资源。
页面静态化就是采用效率最高、消耗最小的纯静态化的html页面来替换动态页面。我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。
4.3 MVC架构
MVC是一个设计模式,它强制性的把应用程序的输入、处理和输出分开。使用MVC将应用程序分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。
4.3.1 视图
视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,要求要以不同的界面呈现。如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。
4.3.2 模型
模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如对数据库的处理。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
4.3.3 控制器
控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。
4.3.4 MVC应用优势
1.适用性
9
MVC模式允许使用各种不同样式的视图来访问同一个服务器端的代码。满足了用户不同方式的访问需求。
2. 快速部署
使用MVC模式使开发时间得到相当大的缩减,它使程序员集中精力于业务逻辑,界面程序员集中精力于表现形式上。
3.可维护性
分离视图和业务逻辑也使得WEB应用更易于维护和修改。在维护过程中可以细化和减少工作量。
4.4 CDN和镜像网站技术
由于网站的用户可能在不同的网络运营商的网络中,不同网络中信息的交互会比在同一网络中慢。为了解决这个问题,本方案就采用了CDN技术和镜像网站技术。
电信机房多线机房网通机房
4.4.1 镜像网站
镜像网站是指将一个完全相同的站点放到几个服务器上,分别都可以有自己的网址,这些服务器上的网站就称为镜像网站。镜像网站和主站并没有什么太大的差别,或者可以说是主站的拷贝。镜像网站的主要优点是,用户如果不能对主站进行正常的访问(如服务器故障,网络故障或者是网速太慢),仍然能通过访 10
问镜像服务器获得服务。
所以在本次方案中,我们可以在不同的网络运营商部署web服务器,通过软件工具自动同步到不同网络接入商的web服务器上,以作为主站的镜像。然后通过配置智能DNS解析来引导不同网络的访问用户到对应的网络运营商的web服务器。
4.4.2 CDN技术
CDN的全称是Content Delivery Network,即内容分发网络。其基本思想是尽可能的避开互联网上有可能影响数据传输速度和稳定性的环节,使内容的传输速度更快、更稳定。通过在网络各处放置节点服务器所构成的在现有互联网基础之上的一层智能虚拟网络,CDN系统能够实时的根据网络流量和各节点的连接、负载状况以及到各用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务器节点上。其根本目的是使用户可以就近的获取所需内容,避开Internet网络拥挤的状况,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因所造成的用户访问网站响应速度慢的问题。
5 网站的硬件扩容和升级
根据当今时代的发展,中国将会有越来越多的人群加入网民的行列,当然也就
会有更多的人愿意通过互联网来购票。所以随着用户的不断增多,为了满足用户的需求,网站对今后的发展和升级也是要必须考虑的。
5.1 增加服务器
当集群不能满足用户的访问要求时,可以考虑在集群中增加服务器,增大整个集群的访问处理能力。
当Web对的并发处理有瓶颈时,增加新的web服务器,把新增的web服务器填加到Web服务器集群中,以增加Web的并发处理能力。
当数据库有处理压力时,可以增加数据库服务器,增加数据库服务器加入数据库的集群中。
5.2 升级服务器
当集群中服务器的各项处理能力不能达到要求时,这时就可以考虑对服务器进行升级。对服务器的升级其实和增加服务器的作用相差无几。但是升级服务器会比增加服务器更加繁琐而且更加昂贵。所以我们一般都采用增加服务器的方法来解决问题。
5.3 增加存储
随着网站的用户访问量的扩大和网站的升级,当然所要存储的信息和数据也就会越来越多,以前的服务器磁盘不再能满足要求。所以此时应当考虑增加磁盘 11
容器或者设立一个新的存储服务器。
5.4 网络扩容
由不断增多的大量的用户访问造成了巨大的网络流量,很可能造成网络的阻塞。原来的网络带宽设计就会无法承受。所以在系统扩容中还要考虑重新申请更大的网络带宽。不仅如此,当带宽增大后,为了适应更大的网络流量,内网交换机的升级也是必须的。
12