门户网站架构设计专项方案_第1页
门户网站架构设计专项方案_第2页
门户网站架构设计专项方案_第3页
门户网站架构设计专项方案_第4页
门户网站架构设计专项方案_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

前台门户网站架构

设计方案

北京宽连十方数字技术

-7

目录

1设计思绪.............................................................

2系统结构.............................................................

3网络计划及性能计算...................................................

3.1网络架构.........................................................

3.2网络架构说明.....................................................

3.2.1采取双防火墙双交换机做网络冗余,保障平台服务.................

3.2.2采取硬件设备负载均衡器,实现网络流量负载均衡.................

3.3系统测算.........................................................

3.3.1系统处理能力要求.............................................

3.3.2业务处理能力要求.............................................

3.3.3系统话务模型.................................................

3.4配置核实.........................................................

3.4.1数据库服务器性能核实.........................................

3.4.2WEB服务器集群性能核实.......................................

3.4.3WEB服务器集群内存性能核实...................................

3.4.4网络带宽.....................................................

4性能模拟测试及性能推算...............................................

4.1测试环境.........................................................

4.2测试结果.........................................................

4.2.11个用户端模拟不一样线和并发请求结果..........................

4.2.210个用户端请求...............................................

4.3结果分析.........................................................

4.4依据测试结果推算.................................................

4.5设备清单.........................................................

4.5.1硬件设备配置清虺.............................................

4.5.2设备技术规格.................................................

4.6平台扩容提议.....................................................

1网站性能瓶颈分析

网站性能影响原因很多,下面关键从以下4个方面进行分析说明:

1)网络负载

a)公网负载

b)内网负载

2)WEB应用服务器性能

a)CPU

b)存放,I/O访问

c)内存

d)并发TCP/IP连接数

3)数据库服务器性能

a)数据库参数配置

b)服务器性能(C=>U、内存、存放)

c)数据结构合理性

4)不一样WEB应用处理方法而对不一样性能瓶颈

a)对于静态网站:

静态HTML页面四格地由标准HTML标示语言组成,并不需要服务器端即时运算生成。

这意味着,对一个静态HTML文档发出访问请求后,服务器端只是简单地将该文档传输到

用户端。从服务器运行那个时间片来看,这个传输过程仅仅占用了很小CPU资源。对于静

态HTML访问瓶颈为:网络带宽、磁盘I/O和cache(高速缓冲存放器)。

b)对于动态页面

囚为服务器解析动态页面必需在其传输到用户端前就经过服务踞来进行解释,这么就

2.2总体架构

2.2.1网站系统分层架构

硬件四层交换负载均衡器

软件四层交换LVS

NginxproxySquid

负载均衡反向代理软件

(数据缓存)SquidcacheNginxcache

WEB服务器

架构

数据持久层页面缓存数据缓存

应用级缓存

(ibatis)(OSCache)(Memcached)

文件

数据存储共享NFSHDFS数据库生产数据库查询数据库

2.2.2网站物理架构

代理服务器集群

wwWW(Nginx)

服务卷1服务善2服务器3朦务器n

2.2.3网站开发架构

消息

通讯层业务层持久层数据层

中心

WEB服务器数据存储

SMS

基于struts的MVC框架

ORM文件存储

MMSControl1/0)HDFS

ibatis

WAP

息数据库

PUSH

J中ViewModel

心^5^

DB连接池

页面缓存(Memcached)(RAC)

短信群

发器

ApacheTomatTomat

(RAC)

彩信群

发器

后台支HTML静统计支撑业务支撑

■撑模块态化模块模块模块

2.2.4网络拓扑结构

磁盘阵列柜磁盘阵列柜

备注:

1)采取双防火墙双交换机做网络冗余,保障平台服务

采取双防火墙通知接通2线路互联网接入,设备之间采取VRRP协议,在任何一八防火墙、

互联网发生故障后均可自动将流量切换到另一端,确保网站正运行,设备或网络恢复后,自

动恢复。

采取双千兆交换机分别接在2台防火墙上,当某台设备或网络链路发生故障后,好设备

自动接管已坏设备工作,不影响网站整体运行,依据业务及真实服务器数量,交换机能够随

时增加。

2)采取硬件设备负载均衡器,实现网络流量负载均衡

使用硬件设备负载均衡器,将网络流量均衡分担到WEB服务器集群各节点服务器,保障

平台服务器资源均衡使用。

3)采取代理服务器,实现软件级网络负载均衡。

4)数据库服务器分离成生产数据库集群和查询数据库集群,实现生产读写和后台查询统计

进行分离,同时生产数据库采取rac技术进行

2.3架构包含技术详解

2.3.1负载均衡

1.基于DNS负载均衡-一个域名绑定多个IP

DNS负载均衡技术是最早负载均衡处理方案,它是经过DNS服务中随机名字解析来实现,在

DNS服务器中,能够为多个不一样地址配置同一个名字,而最终查询这个名字用户机将在解析这个

名字时得到其中一个地址。所以,对于同一个名字,不一样用户机会得到不一样地址,它伯也就访

问不一样地址上Web服务器,从而达成负载均衡目标。

这种技术优点是,实现简单、实施轻易、成本低、适适用于大多数TCP/IP应用;不过,其缺点

也很显著,首先这种方案不是真正意义上负载均衡,DNS服务器将Http请求平均地分配到后台Web

服务器上,而不考虑每个Web服务器目前负载情况:假如后台Web服务器配置和处理能力不一样,

最慢Web服务器将成为系统瓶颈,处理能力强服务器不能充足发挥作用;其次未考虑容错,假如

后台某台Web服务器出现故隙,DNS服务器仍然会把DNS请求分配到这台故障服务器上.造成不

能响应用户端。最终一点是致命,有可能造成相当一部分用户不能享受Web服务,而且因为DNS缓

存原因,所造成后果要连续相当长•段时间(通常DNS刷新周期约为二十四小时)。所以在国外最新

建设中心Web站点方案中,已经极少采取这种方案了。

2.经过硬件四层交换实现负载均衡

在硬件四层交换产品领域,有部分著名产品能够选择,比如Alteon、F5等,这曲产品很昂贵,

不过物有所值,能够提供很优异性能和很灵活管理能力。Yahoo中国当初靠近台服务器使用了三四

台Alteon就搞定了

3.经过软件四层交换实现负载均衡

软件四层交换我们能够使用Linux上常见LVS来处理,U/S就是LinuxVirtualServer;她提供

了基于心跳线heartbeat实时灾难应对处理方案,提升系统鲁棒性,同时可供了灵活虚拟VIP配置和

管理功效,能够同时满足多个应用需求,这对于分布式系统来说必不可少。

一个经典使用负载均衡策略就是,在软件或硬件四层交换基础上搭建squid集群,这种思绪在

很多大型网站包含搜索引擎上被采取,这么架构低成本、高性能还有很强扩张性。

4.经过反向代理服务器实现负载均衡

反向代理服务器乂称为WEB加速服务器,它在WEB服务器前端,充当WEB服务器内容缓存器,

反向代理服务器是针对WEB服务器设置,后台WEB服务都对互联网用户是透明,用户只能看到反

向代理服务器地址,不清楚后台WEB服务器是怎样组织架构。当互联网用户请求WEB服务时,DNS

将请求域名解析为反向代理服务器IP地址,这么URL请求将被发送到反向代理服务器,由反向

代理服务器负责处理用户请求和应答、和后台WEB服务器交互。利用反向代理服务器减轻了后台

Wi:B服务器负载,提升了访问速度,同时避免了因用户直接和W1-B服务器通信带来安全隐患。

WebServerCluster

现在有很多反向代理软件,比较有名有Nginx和Squid。

Nginx是由IgorSysoev为俄罗斯访问量第二Rambler.ru站点开发,是一个高性能HTTP和

反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。

Squid是由美国政府大力资助一项研究计划,其目标为处理网络带宽不足问题,支持HTTP,

HTTPS,FTP等多个协议,是现在Unix系统上使用、最多功效也最完整一套软体。

1)Squid

Squid是一个开源软件,利用它反向代理技术能够提升网站系统访问速度,下面将关键介绍

Squid反向代理实现原理和在提升网站性能方面应用。

Squid反向代理服务器在当地WEB服务器和Internet之间,组织架构以下图:

WebServer

用户端请求访问WEB服务时,DNS将访问域名解析为Squid反向代理服务器IP地址,这么

用户端URL请求将被发送到反向代埋服务器。假如Squid反向代理服务器中缓存了该请求资源,

则将该请求资源直接返回给用户端,不然反向代理服务器将向后台WEB服务器请求资源,然后将

请求应答返回给用户端,同时也将该应答缓存在当地,供下一个请求者使用。

Squid反向代理通常只缓存可缓冲数据(比如html网页和图片等),而部分CGI脚本程序

或ASP、JSP之类动态程序默认不缓存。它依据从WEB服务器返回HTTP头标识来缓冲静态页面,

有四个最关键HTTP头标识:

•Last-Modified:告诉反向代理页面什么时间被修改

•Expires:告诉反向代理页面什么时间应该从缓冲区中删除

•Cache-Control:告诉反向代理页面是否应该被缓冲

•Pragma:用来包含实现特定指令,最常见是Pragma:no-Cache

注:DNS轮询机制将某一人域名解析为多个IP地址。

2)Nginx

Nginx("enginex")是俄罗斯人IgorSysoev(塞索耶夫)编写一款高性能HTTP和反向代理

服务器。

Nginx已经在俄罗斯最大门户网站----RamblerMedia(.ru)上运行了4年时间,同时俄罗斯

超出20席虚拟主机平台采取Nginx作为反向代理服务器。

在中国,已经有新浪博客、新浪播客、搜狐通行证、网易新闻、网易博客、金山逍遥网、金山

爱词霸、校内网、YUPOO相册、豆瓣、迅雷看看等多家网站、频道使用Nginx服务器。

Nginx特点以下:

1)工作在OSI模型第7层(应用层)

2)高并发连接

宜方测试能够支撑5万并发连接,在实际生产环境中跑到2〜3万并发连接数。

3)内存消耗少

在3万并发连接下,开启10个Nginx进程才消耗150M内存(15M*10=150M)<,

4)配置文件很简单

风格跟程序一样通俗易懂。

5)成本低廉

Nginx为开源软件,能够无偿使用。而购置F5BIG-IP、NelScaler等硬件负载均衡交换机

则需要十多万至几十万人民币。

6)支持Rewrite重写规则

能够依据域名、URL不一样,将HTTP请求分到不一样后端服务器群组。

7)内置健康检验功效

假如NginxProxy后端某台Web服务器宕机J’,不会影响前端访问。

8)节省带宽

支持GZIP压缩.能够添加浏览器当地缓存Header头。

9)稳定性高

用于反向代理,宕机概率微乎其微。

3)Nginx+squid页面缓存来实现反向代理负载均衡

经过Nginx反向代理和squid缓存实现动静分离架构图以下所表示:

Nginx反向代理负载均衡

动静分离架绕架构图

外网IP:用户访问

Nginx.conf配置http://www.abc.com

(rewrite动铮分离负或均密):

s«rv«r

励秀FKP请求分到负载均衡

Apache服务器群)

listtn61.1.1.2:80;儒被^存的VRI分

负载均密strv«r_ne*«www.abc.COB;到Squi助艮务器群)

》♦at

NGJMX?线存服务器;

squidlsquid2

内网IP:Squidhosts设置:

Mpnx.conf配置192.168.1.2www.abc.corn

Web服务器群组负羲均衡):

负我均衡

server

Squi球命中»谙求N«inx负羲均衡器

lisUn192.168.1.2:80

server.naatwww.tbcco*;

Mecached内存媛存服务器

阴途:“mo送享)或者直接通过Squid自身的

cache_peer轮询多台We即,

5.Apache+tomcat集群实现负载均衡。

使用apache和多个tomcat配置一个能够应用web网站,用Apache进行分流,把请求根据权重

和当初负荷分tomcatl,tomcat2...去处理,要达成以下要求:

1)Apache做为HttpServer,经过modjk连接器连接多个tomcat应用实例,并进行负载均衡。

2)同时还要配置session复制,也就是说其中任何一个tomcat添加session,是要同时复制到其

它lomcal,集群内lomcat全部有相同session,并为系统(包含Apache和toncat)设

定Session超时时间。

2.3.2缓存

1.系统架构方面缓存

1)Squid缓存

架构方面使用Squid进行缓存。

注:SQUID使用了LM算法,LM就是页面Header里时间(Date)和Last-Modified时间

麦。Date通常是Squid从后面取页面时间,lait-Mcdified通常是页面生成时间。

2)Nginx缓存功效

Nginx从0748版本开始,支持了类似Squid缓存功效;

缓存把URL及相关组合看成Key,用md5编码哈希后保留;

NginxWeb缓存服务只能为指定URL或状态码设置过期时间,不支持类似SquidPURGE指令,

手动清除指定缓存页面;

采取MMAP实现,设置缓存区大小不能超出物理内存+SWEB值

3)基于memcached缓存

nainx对memcached有所支持,不过功效并不是尤其之强,性能上还是很之优异。

location/mem/{

if($uri~"^/mem/([0-9A-Za-z_]*)$")

{

set$memcached_key"$1";

memcached_pass:11211;

)

expires70;

}

这个配置会将。

Nginx现在没有写入memcached任何机制,所以要往memcached里写入数据得用后台动态语

言完成,能够利用404定向到后端去写入数据。

Nginx传统缓存缺点也是它和叫uid等缓存软件不一样之特色,所以也可看作其优

点。在生产应用中它常常见作和squid搭档,squid对于带?链接往往无法阻挡,而

nginx能将其访问拦住,比如::“/在squid上会被当做两个链接,所以会

造成两次穿透:而nginK只会保留一次,不管链接变成:〃/?123,均不能

透过nginx缓存,从而有效地保护了后端主机。

nginx会很老实地将链接形式保留到文件系统中,这么对于一个链接,能够很方便

地查阅它在缓存机基上缓存状态和内容,也能够很方便地和别文件管理器如

等配合使用,它完完全全就是一个文件系统结构。

2.应用程序方面缓存

1)OSCache

OSCache由OpenSymphony设计,它是一个开创性JSP定制标识应用,提供了在现有JSP页面

之内实现快速内存缓冲功效,OSCache是个一个广泛采取高性能J2EE缓存框架,OSCache能用于

任何Java应用程序一般缓存处理方案。OSCache有以下特点:缓存任何对象,你能够不受限制缓存

部分jsp页面或HTTP请求,任何java对象全部能够缓存。拥有全方面API--OSCacheAPI给你全方面

程序来控制全部OSCache特征。永久缓存一线存能随意写入硬盘,所以许可昂贵创建

(expensive-to-create)数据来保持缓存,甚至能让应用重启。支持集群-集群缓存数据能被单个进

行参数配置,不需要修改代码。缓存统计过期--你能够有最大程度控制缓存对象过期,包含可插入

式刷新策略(假如默认性能不需要时)。

OSCache是目前利用最广缓存方案,JBoss,Hibernate,Spring等全部对其有支持。

OSCache特点:

1)缓存任何对象:你能够不受限制缓存部分jsp页面或HTTP请求,任何Java对象全部能够缓存。

2)拥有全方面API:OSCacheAPI许可你经过编程方法来控制全部OSCache特征。

3)永久缓存:缓存能被配置写入硬盘,所以许可在应用服务器数次生命周期间缓存创建开销昂

贵数据。

4)支持集群:集群缓存数据能被单个进行参数配置,不需要修改代码。

5)缓存过期:你能够有最大程度控制缓存对象过期,包含可插入式刷新策略(假如默认性能不

能满足需要时)。

2)Memcached

memcached是高性能分布式内存缓存服务器。通常使用目标是,经过缓存数据库查询结果,降

低数据库访问次数,以提升动态Web应用速度、提升可扩展性。

Memcached是以Key/Value形式单个对象缓存。

—►首次访问:从RDBMS中取得数据保檐ijmemcached

第二次后:从memcached中取得数据显示页面

3)自主开发内存数据缓存服务

a)独立进程方法缓存服务

对于部分常见动态数据经过开发程序服务缓存在内存中,提供给其它子系统调用,以下面数

据就能够经过这么方法进行缓存。

1)用户基础信息及状态信息缓冲

2)列表缓存,就像论坛里帖子列表

3)统计条数缓存,比如一个论坛板块里有多少个帖子,这么才方便实现分页。

4)复杂一点group,sum,count查询,比如积分分类排名

b)集成在WEB应用中内存缓存

在web应用中对于热点功效,考虑使用完全装载到内存,确保绝正确响应速度,对于需要频

繁访问热点数据,采取集口缓存(多个能够采取负载均衡),减轻数据库压力,比如:很多配置信

息,操作员信息等等。

2.3.3页面静态化

静态HTML页面严格地由标准HTML标示语言组成,并不需要服务器端即时运算生成。这意

味着,对一个静态HTML文档发出访问请求后,服务器端只是简单地将该文档传输到用户端。从

服务器运行那个时间片来看,这个传输过程仅仅占用了很小CPU资源。

页面静态化就是采取效率最高、消耗最小纯静态化hlml页面来替换动态页面。我们尽可能使

我们网站上页面采取静态页面来实现,这个最简单方法其实也是最有效方法。

同时采取第三方开源CMS系统来实现网站内容管理。对于大量内容而且频繁更新网站,我

们无法全部手动去挨个实现页面静态化,所以我们需要弓入常见信息公布系统(CMS),信息公布

系统(CMS)能够实现最简单信息录入自动生成静态页面,对于一个大型网站来说,拥有一套高效、

可管理CMS是必不可少。

同时,HTML静态化也是一些缓存策略使用手段,对于系统中频繁使用数据库查询不过内容

更新很小应用,能够考虑使用HTML静态化来实现,比如论坛中论坛公用设置信息,这些信息现

在主流论坛全部能够进行后台管理而且存放再数据库中,这些信息其实大量被前台程序调用,不

过更新频率很小,能够考虑将这部分内容进行后台更新时候进行静态化,这么避免了大量数据库

访问请求。

在进行html静态化时候还能够使用一个折中方法,就是前端继续使用动态实现,在一定策略

下经过后台模块进行定时把动态网页生成静态页面,并定时判定调用,这个能实现很多灵活性操

作。

为了提升静态HTML访问效率,关键能够对以下多个方面进行优化:网络带宽、磁盘I/O和

cache(高速缓冲存放器)。

2.3.4数据库配置及优化

1.数据库集群

对生产数据库采取RAC实现数据库集群。

2.数据库及表散列

把生产数据库和查询数据库进行分离,针对系统业务数据特点,把大表进行拆分,对于访问较

多表采取分区表。

使用读/写数据库分离,伴随系统变得越来越庞大,尤其是当它们拥有很差SQL时,一台数据

库服务器通常不足以处理负载。不过多个数据库意味着反复,除非你对数据进行了分离。更通常地,

这意味着建立主/从副本系统,其中程序会对主库编写全部Update、Insert和Delete变更语句,而全

部Select数据全部读取自从数据库(或多个从数据库)。

尽管概念上很简单,不过想要合理、正确地实现并不轻易,这可能需要大量代码工作。所以,

即便在开始时使用同•台数据库服务器,也要尽早计划在PHP中使用分离DB连接来进行读写操作。

假如正确地完成该项工作,那么系统就能够扩展到2台、3台甚至12台服务器,并含有高可用性和

稳定性。

3.拥有良好DB配置和备份

很多企业全部没有良好备份机制,也不知道如何合适地完成这项工作。只有imp是不移,还需

要进行热备份,从而得到超快速度和超高可靠性。

另外,在将全部备份文件从服务器上转移出来之前要进行压缩和加密。另外还要确保拥有设计

合理、有用相关安全、性能和稳定性问题设定,包含预防数据败坏,其中很多设定全部是很关键。

2.3.5文件存放

1.文件共享

1)HDFS(GFS)

HDFS是ApacheHadoop项目中一个分布式文件系统实现,基于谷歌于10月发表谷歌File

System(GFS)论文。

■特征

1)硬件要求低

2)高容错性

3)易可扩展

4)配置简单

5)超大文件

HDFS采取master/slave架构v

一个HDFS集群是由一个Namenode和一定数R标Datanodes组成。

HDFSArchitecture

2)NFS和GFS比较

首先从它们功效上进行分析。NFS即网络文件系统,是由SUN企业开发。它是FreeBSD支

持文件系统中一个,许可一个系统在网络上和它人共享巨录和文件。经过使用NFS,用户和程序

访问远端系统上文件就像访问当地文件一样。

而GFS是谷歌为了满足本企业快速增加数据处理要求而开发文件系统。GFS是一个可扩展

分布式文件系统,用于大型、分布式、对大量数据进行访问应用。它是针对谷歌计算机集群进行

设计,专门是为谷歌页面搜索存放进行了优化。

所以从功效上看,它们二者是完全不一样概念。

其次从结构上比较,NFS最少包含两个关键部分:一台服务器,和最少一台用户机。被共享

目录和文件存放在服务器二,用户机远程地访问保留在服务器上数据。

GFS则由一台Master(通常有几台备份)和若干台TrunkServer组成。GFS汉字件备吩成固定

大小Trunk分别存放在不一样TrunkServer±,每个Trunk有多份(比如3)拷贝,也存放在不一样

TrunkServer上。Master负责维护GFS中Metadata.即文件名及其Trunk信息。用户端先从Master

上得到文件Metadata,依据要读取数据在文件中位置和对应TrunkServer通信,获取文件数据。

再从跨平台性上,NFS基础标准是“许可不一样用户端及服务端经过一组RPCs分享相同文

件系统”,它是独立于操作系统,许可不一样操作系统共同地进行文件共享。

而GFS则没有这一特点,文件只能被集群系统中PC所访问,而且这些PC操作系统通常是

Linux,

最终从规模上比较,HDFS只应用在大批量数据共享上。现在谷歌拥有超出200个GFS集群,

其中有些集群PC数量超出5000台。集群数据存放规模能够达成5个PB,而且集群中数据读写吞

吐量可达成每秒40G。

而NFS通常没有这么巨大规模。

2.文件多服务器自动同时

使用Linux2.6内核inoUfy监控Linux文件系统事件。

利用开源Isync监听某一日录,假如目录内文件发生噌、删、改,利用Rsync协议刍动同时

到多台服务器。

3.图片服务器分离

尤其是假如程序和图片全部放在同一个APAHCE服务器下,每一个图片请求全部有可能

造成一个HTTPD进程调用。

使用独立图片服务器不仅能够避免以上这个情况,更能够对不一样使用性质图片设置不一样

过期时间,方便同一个用户在不一样页面访问相同图片时不会再次从服务器(基于是缓存服务器)

取数据,不仅快速,而且还省了带宽。还有就是,对于缓存时间上,亦能够做独立调整。

2.3.6网络问题处理方案

你不可能要求全部使用人员,全部和你服务器在一个运行商网络内,而不一样网络之间访问速

度会很慢,我们能够采取镜像网站和引入CDN来处理这一问题。

1.智能DNS解析

我们能够在不一样网络运行商布署web服务器,经过linux上rsync工具自动同时到不一样网络

接入商web服务器上,以作为主站镜像。

然后经过配置智能DNS解析来引导不一样网络访问用户到对应网络运行商web服务器.

2.CDN

假如有足够投资,也能够采取CDN(内容分发网),把静态内容(静态页面和图片)进行CDN缓

存,以减轻服务器压力.

CDN全称是ContentDeliveryNetwork,即内容分发网络。它采取了分布式网络缓存

结构(即国际上流行webcache技术),其目标是经过在现有Internet中增加一层新

网络架构,将网站内容公布到最靠近用户网络“边缘、',使用户能够就近取得所需内

容,处理Internet涌络拥挤情况,提升用户访问网站响应速度。从技术上全方面处

理因为网络带宽小、用户访问量大、网点分布不均等原因所造成用户访问网站响应

速度慢问题。(也就是一个服务器内容,平均分部到多个服务器上,服务器智能识

别,让用户获取离用户最近服务器,提升速度。

现在,中国访问量较高大型网站如新浪、网易等,均使用CDN网络加速技术,

即使网站访问巨大,但不管在什么地方访问全部会感觉速度很快。而通常网站

假如服务器在网通,电信用户访问很慢,假如服务器在电信,网通用户访问又

很慢。

2.3.7WEB应用开发架构设计思绪

1.基于MVC三层应用开发架构

应用开发实现MVC三层架狗进行web应用开发,采取ibatis作为持久层框架,c3Po作为数据库连

接池。

iBATIS是一个能够设计和实现愈加好Java应用程序持久化层框架。iBATIS把对象和存放过程或

使用XML描述符SQL语句进行了关联。简单是iBATIS最大优势

■ibatis-使用ibatis十个理由

1.最少能操作10种以上数据库

2.可配置caching(包含隶属)

3.支持DataSource、localtransactionmanagementglobaltransaction

4.简单XML配置文档

5.支持Map,Collection,List和简单类型包装(如Integer,String)

6.支持JavaBeans类(get/set方法)

7.支持复杂对象映射(如populatinglists,complexobjectmodels)

8.对象模型从不完美(不需要修改)

9.数据模型从不完美(不需要修改)

10.你已经知道SQL,为何还要学习其它东西

1)MVC架构示意

URL

Application.jsChanges

RemoteAPICalls

用户端发送一个HTTP请求,经过Struts框架最终取得一个HTTP响应,这一过程很关犍,它是

了解Struts框架关键。上图描述了Struts框架结构,而下图经过一个活动图更具体描述接收清求直至

返回响应整个过程:

丰Struts受理

范围的请求

[总控%器接:这个HTT^i金]

射到具体的Action中]

Action返回AdionForward对象

2.面向服务应用架构

面向服务应用架构是指构建可分布式、去中心化服务器平台,以提供很多不一样应用,数据库

被分成很多个小部分,围绕每个部分全部会创建一个服务接口(API),而且该接口是访问数据库唯一

路径。最终数据库演变成一个很庞大共享资源。

这种架构是松散耦合,而且围绕着服务进行构建。面向服务架构提供给她们隔离特征,一个服

务可能有很多台数据库服务器,她们之间数据是相通,而对外她们接口只有一个,外面是无法知道

这个服务后面数据组织是怎样搭建。

这么就有了越来越多应用服务器。这些应用服务器从数据众多服务(每个服务背后全部有数据

库或集群数据库)中聚合信息.,然后生成我们所看到A各个网站页面。

这么多种服务如插件一样组成了一个开放平台,这么团体规模就会比较小,比较灵活。

注Amazon就是采取了这种架构来构建,它拥有上千台服务器。

2.4系统软件参数优化

在一定架构基础上,要提升并发处埋能力则需要调整服务器操作系统内核参数、web服务器

(tomcat参数、apache参数、Nginx参数),以使其性能达成最优化。

2.4.1操作系统优化

调整系统内核参数,增大连接数及TCP/IP超时设置。

Linux系统中:

在/etc/syscU.conf配置文件中增加以下内核参数:

net.ipv4.tcp_syncookies=1

net.ipv4.tcp_tw_reuse=1

net.ipv4.tcp_tw_recycle=1

net.ipv4.tcpjinjimeout=5

2.4.2tomcat服务器优化

增大并发连接数,调整内存参数设置.

1、JDK内存优化:

当应用程序需要内存超出堆最大值时虚拟机就会提醒内存溢出,而且造成应用服务瓦解。所

以通常提议堆最大值设置为可用内存最大值80%0Tomcat默认能够使用内存为128MB,在较大

型应用项目中,这点内存是不够,需要调大.

Tomcat默认能够使用内存为128MB,Windows下,在文件/bin/catalina.bat,Unix下,在文件

/bin/catalina.sh前面,增加以下设置।JAVA_OPTS』-Xms【初始化内存大小】-Xmx【能够使

用最大内存】’需要把这个两个参数值调大。正如:JAVA_OPTS='-Xms256m-Xmx512m'表示

初始化内存为256MB,能够使用最大内存为512MB。

2、连接器优化:在tomcat配置文件server.xml中配置中,和连接数相关参数有:

maxThreads:Tomcat使用线程来处理接收每个请求。这个值表示Tomcat可创建最大线程

数。默认值150。

acceptCount:指定当全部能够使用处理请求线程数全部被使用时,能够放I四处理队列中请

求数,超出这个数请求将不予处理。默认值10。

minSpareThreads:Tomcat初始化时创建线程数。默认值25。

maxSpareThreads:一旦创建线程超出这个值,Tcmcat就会关闭不再需要socket线程。默

认值75。

enableLookups:是否反查域名,默认值为true。为了提升处理能力,应设置为false

connnectionTimeout:网络连接超时,默认值600C0,单位:亳秒。设置为0表示永不超时,

这么设置有隐患。通常可设置为30000亳秒。

maxKeepAliveRequests:保持请求数量,默认值"00。bufferSize:输入流缓冲大小,默

认值2048byteso

compression:压缩传输,取值on/off/force,默认值off。其中和最大连接数相关参数为

maxThreadsacceptCounto假如要加大并发连接数,应同时加大这两个参数。

webserver许可最大连接数还受制于*作系统内核参数设置,通常Windows是个左右,Linux

是1000个左右。

2.4.3apache服务器优化

加大并发数量和关闭不需要模块。因为apache很消耗内存,尽可能轻量化。

Apache在配置ContentType时候能够尽可能少支持,尽可能少LoadModule,确保更高系统消

耗和实施效率

同时配置apache和tomcat小合使之能作到动静分离,apache处理静态页面,tomcat处理动态页面。

在处理静态页面或图片、js等访问方面,能够考虑使用lighltpd替换Apache,它提供了更轻量级和更

高效处理能力

2.4.4Nginx服务器优化

workerprocesses:该参数值最好跟cpu核数相等,能够发挥最大性能,假如nginx所在服务器

为2颗双核cpu,则提议设定为4。

3Web服务架构评测

关键对基于tomcat和nginx+tomcatweb服务器处理性能进行测试,以作为不一样性能要求卜.架

构选型依据

3.1测试环境

3.1.1网络环境

1.内网带宽

>TM内网。

>内网ping包延迟:<0.1ms

2.网络拓扑示意

3.1.2服务器配置

设备硬件配置操作系统

IBMX3650

CPU:Intel(R)Xeon(R)E51502.66GHz2咳*2

NginxRedhatlinuxas4

内存:4G

千兆网卡

HpDL580G4

CPU:Intel(R)Xeon(TM)3.40GHz4核*2

Tomcat!Redhatlinuxas5

内存:8G

千兆网卡

HpDL580G4

Tomcat2CPU:Intel(R)Xeon(TM)3.40GHz4核*2Redhatlinjxas5

内存:8G

千兆网卡

HpDL580G5

CPU:Intel(R)Xeon(R)E73101.60GHz4核*2

TestiRedhat1injxas5

内存:4G

千兆网卡

IBMX3650

CPU:Intel(R)Xeon(R)E51502.66GHz2咳*2

Test2Redhat1inJXas4

内存:4G

千兆网卡

3.1.3软件环境

1.操作系统网络参数优化

用做测试各台服务器,均在/etc/sysctl.conf配置文件中增加以下内核参数:

net.ipv4.tcp_syncookies=1

net.ipv4.tcp_tw_reuse=1

net.ipv4.tcp_tw_recycle=1

net.ipv4.tcp_fin_timeout=5

2.Nginx设置

关键配置以下:

userwwwwww;

worker_processes4;

errorjog/usr/local/nginx/logs/nginx_error.logdebug;

pid/usr/local/nginx/logs/nginx.pid;

worker_rlimit_nofile51200;

events

{

useepoll;

workerconnections51200;

)

http

{

includemime.types;

defaultjypeapplication/octet-stream;

#charsetgb2312;

server_names_hash_bucket_size128;

client_header_buffer_size32k;

large_client_header_buffers432k;

sendfileon;

tcp_nopushon;

keepalive_timeout1;

tcp_nodelayon;

#gzipon;

#gzip_min_length1k;

#gzip_buffers416k;

#gzip_http_version1.0;

#gzip_compjevel2;

#gzip_typestext/plainapplication/x-javascripttext/cssapplication/xml;

#gzip_varyon;

upstreamtomcats{

server7:8081;

server6:8081;

#server1:8080;

)

server

(

listen81;

server_namelocalhost;

proxy_redirectoff;

location/{

proxy_passhttp://tomcats;

)

#后端Web服务器能够经过X-Forwarded-For获取用户真实IP

#proxy_set_headerX-Forwarded-For$remote_addr;

#location/{

#if($request_uriM.*\.Gs|css|gif|jpg|jpeg|png|bmp|swf)$H)

#{

#proxy_pass;

#}

#if($request_uri,,A/view/(.*)$")

#{

#proxy_pass;

#}

#proxy_pass;

#}

#定义口志格式

log_formataccess'$remote_addr-$remote_user[$time_local]$request'

'"$status"$body_bytes_sent"$http_referer"'

'"$http_user_agent""$http_x_forwardedjor"';

#打Fl志

accessjog/usr/local/nginx/logs/access.logaccess;

#许可用户端请求最大单个文件字节数

client_max_body_size10m;

#缓冲区代理缓冲用户端请求最大字节数能够了解为先保留到当地再传给用户

client_body_buffer_size128k;

#跟后端服务器连接超时时间一提议握手等候响应超时时间

proxy_connect_timeout600;

#连接成功后—等候后端服务器响应时间—其实已经进入后端排队之中等候处理

proxy_read_timeout600;

#后端服务器数据回传时间一就是在要求时间之内后端服务器必需传完全部数据

proxy_SAnd_timeout600;

#代理请求缓存区.这个缓存区间会保留用户头

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论