系统架构演变-上|学习笔记

简介: 快速学习系统架构演变-上

开发者学堂课程【全面讲解 Spring Cloud Alibaba 技术栈系统架构演变-上】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/683/detail/11853


系统架构演变-上


内容介绍:

一、系统演变过程

二、单体应用架构

三、垂直应用架构


一、系统演变过程

从互联网兴起一直发展到现在,网站应用的规模在不断的扩大,为了适应这种规模的变化,系统架构也在进行不断的变化,大体上分为下面几个阶段:单体应用架构、垂直应用架构、分布式架构,、SOA 架构、微服务架构。还有一种架构称为 Service Mesh (服务网格化)正在悄然兴起,本次服务网格化不在我们的研究之列。我们主要研究前五种架构,了解每种架构是什么样的以及各自的优缺点。


二、单体应用架构:

image.png

1.是什么?

我们以图示了解每种架构及优缺点,以一个电商项目为例,它就是将一个网站的所有模块都开发在一个项目之下。对于一个电商项目来说,有前台页面模块,后台管理模块,和前台个人中心三个模块。对于单体应用架构来讲,其就是将那些所有的模块,都开发在一个项目之下,然后再将这一个项目打成一个挂包,然后部署到一台 web 中间件,比如说 tomcat 之下。然后用户就可以通过对这台 tomcat 进行访问,进而访问到应用。这就是单体运用架构,核心就是所有模块开发在一起。

2.优缺点

(1)优点:首先在开发方面,单体应用架构的架构图很简单。正是因为它的架构简单,并且所有模块都开发在一个项目之下,所以对于一些小型项目,单体应用架构的开发和维护都很简单。用这种架构,不涉及分模块和分应用。其次在部署时,部署到单点 tomcat 上就可以,使得后期维护方便。

(2)缺点:首先,对大型项目来说,所有的功能都集中在一个项目之下,维护比较难。其次,模块之间是紧密耦合的,比如个人中心可能会用到前台页面中的东西,一旦一个模块出现问题可能导致整个应用不能用,即单点容错率低。最后,其无法针对某一个模块进行水平扩展或者优化。比如随着应用访问量越来越大,一台应用无法承受,且用户主要访问前台页面,如果想要对前台进行扩展,只能将整个应用拷贝。即因为要优化前台页面导致三个模块都需复制,需要整个机群,而不能单单对前台页面进行修改,保持别的模块不动。

这就是最原始的架构:单体应用架构,由于该架构有上述几个缺陷(所有模块放在一个项目之下,所有模块间是耦合的,导致单点容错率低,且无法进行水平扩展。),垂直应用架构应运而生。


三.垂直应用架构

image.png

1.是什么?

在单体应用架构基础上形成,每个模块单独在一个项目之下。整个前台页面不是一个模块而是一个系统,称为前台系统,后台及个人中心也变成后台管理系统和个人中心系统。而且,每个单独系统都会独立部署到一台 tomcat 上。然后站在用户角度决定调用哪个系统。这种架构解决了单体应用架构的一些缺点,模块之间没有耦合并且可以针对其中一个进行水平化。比如前台中心每次访问量都很大,一个系统无法承载,就可以再做一个前台系统,此时后台管理系统和个人中心仍然是一个,不受影响。

2.优缺点

(1)优点:系统拆分之后可以进行水平扩展和优化。系统之间不再耦合,比如前台出问题,后台及个人中心不受影响,即提高了单点容错率。

(2)缺点:由于拆分成单独的系统,系统之间没有关系,导致系统之间无法相互调用,如前台页面想调用个人中心的内容,必须单独开发。如单独开发,则会导致一部分代码重复,且重复代码会随着项目变大而增多。

相关文章
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
690 6
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
331 1
|
12月前
|
自然语言处理 JavaScript Java
《鸿蒙HarmonyOS应用开发从入门到精通(第2版)》学习笔记——HarmonyOS架构介绍
HarmonyOS采用分层架构设计,从下至上分为内核层、系统服务层、框架层和应用层。内核层支持多内核设计与硬件驱动;系统服务层提供核心能力和服务;框架层支持多语言开发;应用层包括系统及第三方应用,支持跨设备调度,确保一致的用户体验。
1090 81
|
Kubernetes Cloud Native Docker
云原生之旅:从容器到微服务的架构演变
【8月更文挑战第29天】在数字化时代的浪潮下,云原生技术以其灵活性、可扩展性和弹性管理成为企业数字化转型的关键。本文将通过浅显易懂的语言和生动的比喻,带领读者了解云原生的基本概念,探索容器化技术的奥秘,并深入微服务架构的世界。我们将一起见证代码如何转化为现实中的服务,实现快速迭代和高效部署。无论你是初学者还是有经验的开发者,这篇文章都会为你打开一扇通往云原生世界的大门。
|
运维 监控 Cloud Native
自动化运维的魔法书云原生之旅:从容器化到微服务架构的演变
【8月更文挑战第29天】本文将带你领略自动化运维的魅力,从脚本编写到工具应用,我们将一起探索如何通过技术提升效率和稳定性。你将学会如何让服务器自主完成更新、监控和故障修复,仿佛拥有了一本能够自动翻页的魔法书。
|
9月前
|
人工智能 前端开发 Java
DDD四层架构和MVC三层架构的个人理解和学习笔记
领域驱动设计(DDD)是一种以业务为核心的设计方法,与传统MVC架构不同,DDD将业务逻辑拆分为应用层和领域层,更关注业务领域而非数据库设计。其四层架构包括:Interface(接口层)、Application(应用层)、Domain(领域层)和Infrastructure(基础层)。各层职责分明,避免跨层调用,确保业务逻辑清晰。代码实现中,通过DTO、Entity、DO等对象的转换,结合ProtoBuf协议,完成请求与响应的处理流程。为提高复用性,实际项目中可增加Common层存放公共依赖。DDD强调从业务出发设计软件,适应复杂业务场景,是微服务架构的重要设计思想。
|
Kubernetes Cloud Native Docker
云原生之旅:从传统架构到容器化服务的演变
随着技术的快速发展,云计算已经从简单的虚拟化服务演进到了更加灵活和高效的云原生时代。本文将带你了解云原生的概念、优势以及如何通过容器化技术实现应用的快速部署和扩展。我们将以一个简单的Python Web应用为例,展示如何利用Docker容器进行打包和部署,进而探索Kubernetes如何管理这些容器,确保服务的高可用性和弹性伸缩。
|
负载均衡 API 持续交付
深入探索微服务架构的演变与实践
【10月更文挑战第5天】 在当今软件开发领域,微服务架构以其独特的优势,如解耦、灵活性和可扩展性,已成为构建现代应用的首选方法。本文将全面解析微服务的核心概念、发展历程及其在实际应用中的最佳实践,帮助读者深入理解并有效实施微服务架构。
249 3
|
消息中间件 负载均衡 Cloud Native
云原生之旅:从容器到微服务的架构演变
在数字化转型的风潮中,云原生技术以其灵活性、可扩展性和弹性而备受青睐。本文将通过一个虚拟的故事,讲述一个企业如何逐步拥抱云原生,实现从传统架构向容器化和微服务架构的转变,以及这一过程中遇到的挑战和解决方案。我们将以浅显易懂的方式,探讨云原生的核心概念,并通过实际代码示例,展示如何在云平台上部署和管理微服务。
|
机器学习/深度学习 人工智能 云计算
后端架构的演变与未来趋势
本文深入探讨了后端架构的历史演变和未来发展趋势,从单体应用到微服务架构,再到无服务器架构,分析了每种架构的特点、优势及应用场景。同时,展望了未来可能的发展方向,如人工智能在后端开发中的应用、云计算技术的深度融合等,为后端开发者提供了宝贵的参考和启示。

热门文章

最新文章