ad

读懂《Java架构之完美设计 实战经典》_为更好架构做准备_2.8.4 架构思想之间的关系

admin 190 2023-10-26

【摘要】 本书摘自《Java架构之完美设计 实战经典》一书中第2章,第8节,由颜廷吉编著。

2.8.4 架构思想之间的关系

应用架构作为独立可部署的单元,为系统划分了明确的边界,深刻影响系统功能组织、 代码开发、部署和运维等各方面。应用架构定义系统有哪些应用以及应用之间如何分工和合 作呢?应用架构的本质是通过系统拆分,平衡业务和技术复杂性,来保证系统形散神不散。 应用架构的发展大致经过了单体架构、垂直架构、面向服务架构、微服务架构四个过程

1. 单体架构

一个归档包(例如 war格式)包含了应用所有功能的应用程序,通常称之为单体应用。 架构单体应用的方法论,称之为单体应用架构。当系统只需一个应用,将所有功能都部署在 一起就可以方便解决问题时,就可以采用这种架构。

读懂《Java架构之完美设计 实战经典》_为更好架构做准备_2.8.4 架构思想之间的关系

2. 垂直架构

当访问量逐渐增大, 一个服务器已经无法满足应用需求。通过增加服务器形成集群,再 利用负载均衡技术来提高性能的垂直架构应运而生,这也是目前Java EE 系统使用最多的架 构形式。

3.SOA 架构

当应用越来越多,应用之间的交互将不可避免。把核心业务抽取出来,作为独立的服 务,逐渐形成稳定的服务中心,使前端应用能更快速地响应多变的市场需求。此时,用于提 高业务复用及整合的分布式服务框架相应问世。它将整个系统打散成为不同的功能单元 (即服务),将这些服务通过接口和契约联系起来。

4. 微服务架构

当使用SOA 的时候,可能会进一步思考,既然 SOA 是通过将系统拆分来降低复杂度而 实现的,那么是否可以把拆分的粒度再细一点?将一个大服务继续拆分成为不同的、不可再 分割的“服务单元”时,也就演变成另外一种架构风格——微服务架构。所以,微服务架 构本质上是一种SOA 的特例,避免了SOA 系统升级风险高、维护成本高、项目交付周期 长、监控困难等开发上的难题。

5. 单体架构与微服务架构

对于这个问题, Martin Fowler在论文 《Microservice Premium》 中深刻阐述了这一点,同 时他给出了一个很关键的图上图直观地说明了单体架构和微服务架构在不同系统复杂度下不同的生产力以及两者的 对比关系。对于需要快速为商业模式提供验证的系统,在功能较少、用户数量不是很多的情 况下,单体架构是更好的选择。

软件发展的不同时期、阶段,对技术的理解、选择和应用都有着不一样的诉求。架构的 选型,永远只有“合适与不合适”,而没有“哪个更好”的说法。也就是说,选择时团队成 员的技术水平的重要性要超过架构本身的特性。

本章所介绍的各种架构思想之间的关系如图2-71所示。由面向过程的编程思想,发展 到面向对象的编程思想,相应地出现了面向过程的编程语言与面向对象的编程语言。其中面 向对象的编程思想里面,亦包含面向过程的思维。随着技术的发展又出现了面向服务架构的 编程思想,其实现方式既可以是面向过程的技术也可以是面向对象的技术;面向服务技术进 一步演进,又产生了微服务编程。在面向对象编程思想里面,又衍生出了面向接口、面向切 面以及面向组件的编程,这三者都属于面向对象编程的思想体系,是面向对象编程思想的特 例(一种方式)。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:读懂《Java架构之完美设计 实战经典》_为更好架构做准备_2.8 架构编程思想
下一篇:读懂《Java架构之完美设计 实战经典》_为更好架构做准备_2.3.4 Scrum 开发模型
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×