网站首页 > java教程 正文
架构,又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。
Java企业级的应用根据业务的复杂程度,通常使用的系统架构有应用架构、垂直应用架构、面向服务的架构(Service-Oriented Architecture,SOA)、微服务架构等。
项目架构的选择在项目准备过程中占据着重要的位置,除此之外技术架构的选择也是项目准备过程中必不可少的一个环节,接下来将针对项目架构和技术架构的选择进行详细讲解。
单体应用架构
单体应用架构是把所有业务场景的表示层、业务逻辑层和数据访问层放在一个工程中,经过编译打包,部署在一台服务器上。
优点:项目架构简单,技术结构单六,前期用人成本低,适合小型系统的开发。
缺点:随着业务复杂度的增加,功能越来越多,代码量越来越大,会导致代码可读性、可维护性和可扩展性下降。由于系统过大且关联较多,任何一个ug都有可能导致整个系统宕机。
垂直应用架构
垂直应用架构将单体应用拆分成若干个独立的小应用,每个小应用独立的部署到不同的服务器上,以提升效率。
优点:通过垂直拆分实现流量分担,减轻服务器压力;可以针对不同的应用进行优化,方便水平扩展,容错率提高。
缺点:当垂直应用越多,应用之间可能发生相互调用,不同应用之间可能出现数据、代码、功能冗余。
SOA
SOA是面向服务的架构,它将应用程序的不同功能单元(简称服务)进行拆分,并通过这些服务之间定义的接口和协议将其联系起来。
优点:将公共的功能抽取为服务,提高开发效率;各个服务之间耦合度低,可读性和可维护性比较好。
缺点:抽取服务的粒度较大,服务提供方与调用方接口耦合度较高。
微服务架构
微服务架构是SOA架构的升级,每一个服务就是一个独立的部署单元,服务之间的耦合性很低。
优点:开发模式更加灵活;微服务的.独立打包、部署和升级,使小团队的交付周期将缩短,运维成本下降。
缺点:对技术要求较高;微服务过多会造成服务管理成本提高,不利于系统维护,服务拆分粒度过细也会导致、系统变得凌乱和笨重。
在开发时通常会根据不同的需求将项目拆分为多个层次处理,开发者可以根据不同的需求由其相对应的技术栈提供解决方案。
- 上一篇: JVM 完整深入解析(jvm解析过程)
- 下一篇: Java基础之数组(java数组知识)
猜你喜欢
- 2024-09-25 JVM 完整深入解析(jvm解析过程)
- 2024-09-25 一套分布式基础框架(java)(分布式开发框架 java)
- 2024-09-25 盘点最流行的JavaWeb开发框架(目前最流行的java开发框架)
- 2024-09-25 学习Java必备的6个框架,全都是Java程序员们的珍藏
- 2024-09-25 「每天一个知识点」教你如何写框架
- 2024-09-25 Java主流技术框架介绍(java技术框架选型)
- 2024-09-25 Java开发中常用的框架有哪些?(java常用的框架和技术)
- 2024-09-25 Java中的SSM框架详解(javassm框架项目实例)
你 发表评论:
欢迎- 最近发表
-
- Java常量定义防暴指南:从"杀马特"到"高富帅"的华丽转身
- Java接口设计原则与实践:优雅编程的艺术
- java 包管理、访问修饰符、static/final关键字
- Java工程师的代码规范与最佳实践:优雅代码的艺术
- 编写一个java程序(编写一个Java程序计算并输出1到n的阶乘)
- Mycat的搭建以及配置与启动(mycat部署)
- Weblogic 安装 -“不是有效的 JDK Java 主目录”解决办法
- SpringBoot打包部署解析:jar包的生成和结构
- 《Servlet》第05节:创建第一个Servlet程序(HelloSevlet)
- 你认为最简单的单例模式,东西还挺多
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)