系统设计及问题_第1页
系统设计及问题_第2页
系统设计及问题_第3页
系统设计及问题_第4页
系统设计及问题_第5页
全文预览已结束

下载本文档

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

文档简介

1、系统概述。数据库:Oracle,后期可能增加MySQL 支持。Web Server:Tomcat、WebSphere。操作系统:Web Server 部署在Linux 上;客户端Windows Windows 、Windows 浏览器:IE6-IE11Chrome、Firefox。系统采用目前比较流行的SpringMVC 框架结构,利用Spring 框架的高可配置性,实现程序的灵活配置。现有系统设计这要求系统能够有强大的吞吐能力,支持高并发、大数据量的处理。心问题。系统框架本系统是在 MVC 模式基础上来进行分层,由于本系统开发的工具是Eclipse,在建立工程时开发工具就已经初步把系统分成M

2、VC 三层结构。M(Model)层:M 层主要是用来存实体Bean 类。这些Bean 类主要包含两类:PO(Persistant Objec:持久对象,用来与后台数据库中的表相映射的java对象。 2)V(ValueObjec并将业务数据转换成客户表示层所需的数据;和PO 对象一样,VO 对象也是仅仅包含数据而已,但应是抽象出的业务对象。V(View)层:V 层在本系统中用来数据展示,客户端主要采用JSP + JQuery + Ajax + JQuery EasyUI组件包技术,通过云桌面的表现形式,实现用户与系统交互。支持HTML5,客户端浏览器支持IE6-11、Chrome、Firefox

3、。C(Controller)层:C这一层的控制。本系统对CController,ServiceDAOSpringMVC 注解(RequestMapping)实现对客户端请求的拦截,拦截方法中调用ServiceService 层采用接口 + 实现的实现方式;通过内部对DAO 接口的调用,来完成对数据库中数据的操作;Service 层对外提供Service 接口,通过接口的实现方式的不同来完成业务逻辑的变更。DAOServiceDAO 也层采用接口 + 实现的实现方式;DAO 层对外提供 DAO以及实现多数据库的支持。免了各个功能的混淆,方便了程序的开发、维护。系统设计应用程序级设计性能方面:1、

4、对常用的数据进行缓存,提高性能;但数据缓存对内存占有量将会有所提升,要根据实际情况进行综合考虑。2、对数据的处理代码读写分离,读操作采用缓存处理,写操作采用异步处理。3、对常用的数据库数据,建立索引表;如果必要,可建立冗余索引表。4、充分利用数据库视图View、函数Functio、存储过程Procedur杂的报表,可以使用存储过程在数据库端完成数据的分析提取。5、尽量减少程序对数据库的访问。对于实时性要求较高的数据,上下级数据采用触发器进 报教育局,不要求数据的实时上级推送。6Server能分摊到客户端浏览器中,来分担服务器的压力。如:客户端浏览器可以通过JS 脚本对服务端传来的数据进行分析、

5、整理,然后显示到浏览器中。7、MemCache:网站程序开发使用Linux 上提供的Memcachedmemcached内存方面:1AOP (Spring范围,节省事务内存开支。2、 减少 Session 的使用,尽量使用Cookie。3IOIOIO对系统性能的提升很有必要。4、 代码检查,用性能分析工具(如:JProfiler)检查有没有内存泄露等问题。系统级设计1、 负载均衡,集群方案LVS + Nginx + Squid + Apache:异步模式,负载平衡。LVS:负载均衡,单点故障,请求转发。Nginx:异步反相代理, 高并发量处理,应用服务器负载平衡。(Apache 提供的mod_

6、proxySquidnginxGZip 压缩,这样可优化squidSquidSquid,apachediskcachememcache。Squidcpu。Apache:在代理和缓存的规则上,apache 功能强大。通过Tomcat 的 Session 复制自动保持 Session 同步,每个Tomcat 保存相同的Session 信息。2、 数据库集群OracleOracle9i 真正应用集群)。MySQLMaster/Slave3(方法的调整,减少事务的使用范围。(Oracle 数据库单表记录超过 明显下降。实现数据库横向(集训)和纵向(水平分库,例如:单数用户放到 A 数据库,双数用户放到

7、B)的压力分解。4、图片服务器分离Web 服务器来说,不管是ApacheIIS系统压力,并且可以保证系统不会因为图片问题而崩溃。5、缓存网站架构和网站开发中的缓存也是非常重要。架构方面的缓存,使用外加的SquidApacheLinux 上提供的 Memcached象等内容进行缓存。Jsp + Jquery + Jquery EasyUI + Ajax客户端Jsp + Jquery + Jquery EasyUI + Ajax软件四层交换LVS软件四层交换LVSNginx proxySquid反向代理软件Nginx proxySquid反向代理软件(数据缓存)Squid cacheNginx c

8、acheWeb服务器架构Web服务(Apache+tomcat 集群负载均衡)ApacheTomcatTomcatControllerControllerMVC应用架构ModelView(JSP+JqueryEasyUI)应用级缓存数据持久层应用级缓存数据持久层(UCP数据库连接池、SpringJdbc、Spring事物机制)页面缓存(OSCache)数据缓存(Memcached)队列服务(Redis)数据库集群Oracle数据库集群OracleMySQL文件共享NFSHDFS系统整体架构上图阐述了本系统所采用的基本架构,可以从以下几点进行说明:1LVSNginxApacheTomcatNgi

9、nxTomcat处理。2Nginx squid Squid 只缓存无压缩版本,由nginx 执行GZipsquid缓存容量。3Apache Tomcat 做集群(块。Session TomcatSessionSessionTomcatSession Tomcat Down 全的负载均衡。缺点:此架构配置相对复杂,对每服务服务器内存消耗高。4Memcachedmemcached实例的简便性让您可以使用多个机器上的多余RAM 来提高您缓存的整体大小。总结:将nginx 再放在Squid 的前面,构成 nginx+Squid+Apachenginxproxy 模块转发给Squid,如果 Squid

10、中有该请求的内容且没有过期,则直接返回给nginxApache 中WebnginxSquidWebnginx以上是现有系统基本设计思路,这种设计存在什么问题或者哪些不足?请夏老师能够帮忙指正一下。需要解决的问题1、 由于本系统的数据量非常庞大,可能产生 1T 或者几T,甚至更多的数据量;大数据处理方面经验不足是主要问题。主要问题集中在以下几个方面:怎样能降低多表(大表)关联查询、统计造成的性能下降的问题?本系统主要使用Oracle数据库(后期可能提供MySQL的支持Oracle优化配置方面存在经验不足的问题。关键数据发生变更时都需要保存当时的时间54级排名、班级积分等,只能通过 4 月份时班级的学生快照进行计算获得,而不能通过当前的班级学生计算得到。这种问题有什么好的解决办法吗?2用这种情况下如何保证用户登录一个系统后,其他子系统不会被其他人员登录。3、 现在系统的部署方式是以

温馨提示

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

评论

0/150

提交评论