`

java web系统架构设计需要解决的几个问题

阅读更多

下面列出了java web系统整体设计时需要解决的几个问题,肯定不够全面和深入,欢迎大家补充和交流,呵呵。

 

系统架构的工作是需要长期一线编码经验的,管理方向的项目经理之类的应该较少参与,长期非一线人员主导了架构及细节工作,很可能设计出来的系统缺乏根据,个人认为此类系统具备较好的成长性的可能性较小。

 

1. 应用层架构

1.1 子系统的划分

子系统的划分只存在于分布式系统中,通常情况下,子系统的划分需要从业务和技术两个维度来考虑,以业务分析作为划分依据,以实现的复杂度、合理性、性能等作为要求来综合考虑和设计子系统的划分。

 

 

1.2 子系统间的通讯方式

子系统之间的通讯方式是否合理和高效,在很大程度了约束和决定了系统的整体性能、扩展性、可维护性等表现。通常的选择包括基于tcp协议、http协议,传输的数据包括二进制流,json格式数据,xml格式数据等。

 

1.3 事务的选择和定义

1.3.1 选择本地事务还是分布式事务,根据是什么,数据层的架构方式对事务模式的选择有较大的影响,需要重点分析。一般不建议采用分布式事务,主要因为该方式实现机制较为复杂,因而响应不够迅速。

 

1.3.2 分布式系统要考虑子系统之间接口的事务方式,采用什么方式可以较好的保证系统数据完整性和性能。

曾经在一个企业应用项目,架构师采用自定义回滚接口的方式来保证子系统见消息传递的事务处理,实践证明也是一种可行的方式。参与的一个互联网项目,采用了调用失败后定时再次调用的方式从某种程度降低子系统间接口传递消息失败的几率的方式,虽然从逻辑上讲不是比较理想,但比较实用,慢慢进化吧。

 

1.2 逻辑架构设计

 主要和业务相关度较大,在对业务的深入分析和理解的基础上,归纳总结出合理的逻辑模型是最终的目标。

逻辑模型基于业务,并进行抽象,根据业务和实际需求,需要确定大的方向,包括是设计 为集中式系统还是分布式系统,如果是分布式系统,那系统如何拆分是进一步要解决的问题。

 

1.3 部署架构设计

部署架构一般包括网络拓扑架构、系统部署架构。网络拓扑架构主要任务是完成系统的网络设备的选择,如何组合和设计,例如根据网络安全的需要,合理地划分网络安全区域;根据需要选择防火墙、路由器、网关等网络设备,以及设计为既能保证安全,又能保证尽量简单的结构,减少不必要的“跳”,就减少了系统的复杂度,减少了运维和监控的工作难度。

 

1.4 web服务器的选择,是选择tomcat级别的还是应用服务器。

web服务器轻量级,免费开源是很好的优势,对于中小型项目已经够用。较大型或对web服务器的稳定性、扩展性、技术咨询较高的项目,采用应用中间件也是较好的选择,毕竟商业的软件,技术支持方面有优势。

 

1.5 .怎样访问数据库,是选择jdbc的方式还是使用持久层框架。

对于大数据量的系统,建议采用jdbc方式。原因是采用hibernate等持久层框架会提高开发效率,但性能方面没有保证。毕竟我们选择框架时是需要根据的,这个关键点上要重点考虑系统负载加大后,如何较好地进行系统的性能优化,而不能只考虑是否有利于提高开发效率。

 

2.数据层架构设计

2.1 cache软件选择

目前在用户量数据量较大的系统中,通常在数据库软件之上会添加一层cache来提供数据访问的支撑能力。

互联网软件中用户访问压力较大,数据量也很大,仅仅通过DB无法满足系统吞吐量的要求,惯常的做法是将数据首先存储到cache软件中,然后异步存储到DB中。cache提供高效地实时数据访问能力,DB提供数据的持久化能力。目前常用的cache软件包括redis和memched等,都比较成熟可用。

 

2.2 选择数据存储软件

选择数据库存储还是nosql,需要进行分析和判断。目前,常用的方式是两种合理的组合。

较核心和关键的数据一般对数据的一致性和完整性要求较高,通常选择关系型数据库来存储。

日志等非关系型数据一般选择nosql软件,mangodb等是通常的选择。

 

2.3 选择数据产品的存储模式

对于数据库来说,首先考虑如何实现load balance、failover、scale和restore。

 

 

3. 负载均衡设计

3.1 web层

3.2 数据层

 

 

4. 扩展性

3.1 web层

3.2 数据层

 

5. 高可用设计

5.1 web层

5.2 数据层

 

 

 

 

 

 

 

 

 

 

 

0
1
分享到:
评论
2 楼 higlory 2013-10-10  
:evil :
1 楼 z1050334 2012-12-29  
                :lol: [u][/u]

相关推荐

    任务书-基于JAVA-WEB技术的旅行社网站系统设计.doc

    " "3、在开发设计中拟解决系统的总体设计,软件的架构设计,网站的总体规划,以及建立 " "旅游网站系统的设计目标、软件、后台的数据库以及数据表的建立等关键性的问题,为进" "一步开发动态的旅游网站制定总体蓝图...

    Java-Web程序设计(PPT).pptx

    第1章 Web应用程序基础 Java Web程序设计 Java-Web程序设计(PPT)全文共389页,当前为第1页。 课程概述 终点 起点 1 2 3 4 5 6 7 1.Web应用程序基础 2.JSP基础 3.JSP内置对象 5. Servlet技术 4.JavaBean和标准动作 6....

    java-web网上书店系统课程设计.doc

    " " "课程设计要求设计一个用Java Web开发基于B/S架构的管理系统,页面至 " "少6个以上,应能反应出学生综合利用Java Web知识和数据库知识完成一 " "定的设计任务的能力,反映出学生理论联系实践的动手能力。...

    基于Java-Web技术的图片管理系统的设计与实现.doc

    基于Java Web技术的图片管理系统 的设计与实现 本科毕业设计 目 录 第1章 引言 6 1.1 课题研究目的及意义 6 1.2 课题研究的内容 7 2.1 用户功能需求 7 图片收藏数据库查询系统图片收藏数据库查询系统是方便用户对...

    深入分析java web

    这本书主要是分成十几个知识点,都是关于Web的,比如I/O,javac编译原理,class文件结构,JVM等

    架构探险-从零开始写javaweb框架

    《架构探险:从零开始写Java Web框架》首先从一个简单的 Web 应用开始,让读者学会如何使用 IDEA、Maven、Git 等开发工具搭建 Java Web 应用;接着通过一个简单的应用场景,为该 Web 应用添加若干业务功能,从需求...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    1.3 关于xml的几个问题 3 1.4 xml与html的比较 4 1.4.1 xml将数据与显示分开 5 1.4.2 xml对文档的格式要求更加严格 6 1.4.3 xml有且只能有一个根元素 6 1.5 xml的编辑工具 7 1.6 xml文档 8 1.6.1 xml声明 9 ...

    基于java的毕业设计电影院购票平台

    基于java的毕业设计电影院购票平台,近几年,互联网飞速发展,利用互联网可以进行信息的查看以及实现信息化的管理操作。电子商务在这个时候也进入了高速发展时期,人们利用互联网可以进行影院信息的查看和电影购买,...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    1.3 关于xml的几个问题 3 1.4 xml与html的比较 4 1.4.1 xml将数据与显示分开 5 1.4.2 xml对文档的格式要求更加严格 6 1.4.3 xml有且只能有一个根元素 6 1.5 xml的编辑工具 7 1.6 xml文档 8 1.6.1 xml声明 9 ...

    《Java-Web应用开发基础》教学课件08课程设计实例.pptx

    模块8 课程设计实例 02 08 《Java-Web应用开发基础》教学课件08课程设计实例全文共73页,当前为第1页。 知识目标 了解MVC设计模式的基本内容及其作用。 了解Servlet过滤器的基本结构及其设计方法。 掌握用MVC设计...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    1.3 关于xml的几个问题 3 1.4 xml与html的比较 4 1.4.1 xml将数据与显示分开 5 1.4.2 xml对文档的格式要求更加严格 6 1.4.3 xml有且只能有一个根元素 6 1.5 xml的编辑工具 7 1.6 xml文档 8 1.6.1 xml声明 9 ...

    Java Web应用开发:商品搜索.docx

    在webContent/pages/common文件夹下创建leftParts文件夹,用来存放左侧的几个小页面(之后还会有登录等页面放置在左侧)。将findProductsByName.jsp页面复制到leftParts文件夹中。结构如图所示: 补充其中的表单内容...

    基于Java-Web平台的科研管理系统设计.doc

    基于Java Web平台的科研管理系统设计 摘要:高职院校的横向科研课题和纵向科研课题越来越多,为了管理方便,需要建立B /S结构的科研管理系统,方便教师提交和管理者管理和统计。系统使用Java Web平台的MVC模式进行开发,...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    1.3 关于xml的几个问题 3 1.4 xml与html的比较 4 1.4.1 xml将数据与显示分开 5 1.4.2 xml对文档的格式要求更加严格 6 1.4.3 xml有且只能有一个根元素 6 1.5 xml的编辑工具 7 1.6 xml文档 8 1.6.1 xml声明 9 ...

    JSP会议管理系统myeclipse开发mysql数据库web结构计算机java编程

    JSP 会议管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 二、功能介绍 多功能会议能管理系统要满足以下几个方面的功能需求: ...

    java课程设计-设计一个图形界面的计算器-完成简单的算术运算.doc

    本系统预计要达到以下几个目标 : (1)、满足以上的功能要求; (2)、能够运行在常见的计算机及其配置上; 三、设计思路 1.关于布局问题 本次课程设计程序继承来自框架类(Frame),总体布局上选用布局管理器...

    JAVA上百实例源码以及开源项目

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...

    Java Web应用开发:商品展示静态页面.docx

    common文件夹中存放了网站的几个公共区域页面,包括顶端菜单、底部版权,左侧区域。它们会被多个页面包含。 head.jsp :网站的顶端菜单 left.jsp:网站的左侧 statusBarNavigation.jsp:网站底部的版权信息 2.2. ...

    基于Java Web酒店客房管理系统的设计与实现源码.zip

    提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速...

Global site tag (gtag.js) - Google Analytics