应用的架构演变|学习笔记

简介: 快速学习应用的架构演变

开发者学堂课程【阿里巴巴分布式服务框架 Dubbo 快速入门应用的架构演变】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/624/detail/9454


应用的架构演变


架构服务的发展演变

image.png

应用架构发展的路线图,解释了从单一的小型应用转变成一个分布式的大型应用

(1)单一应用架构:
当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。

缺点:

不易扩展

不易协同开发

不易对服务器进行维护

(2)垂直的应用架构:

image.png

将每一个应用独立分布到每一个小服务器上

分工合作容易互不干扰

用户拓展容易

拓展应用访问量增大时可以多增加几台服务器

缺点;

界面和逻辑不易分离

应用之间不可能完全独立,大量的应用之间需要交互之间需要交互。

当我们这个垂直应用越来越多,因间还想要交互,我们就可以把他们的核心业务单独抽取出来,比如分布式架构服务

(3)分布式架构服务

image.png

将之前的用户应用,抽取成了用户的界面,web 界面和用户业务逻辑。

这样做的好处是当业务逻辑不变的情况下,如果只想改界面,就只需把界面一改,界面的服务器可以重新启动一下,核心的业务逻辑还在其他的服务器上。

比如那么比如用户界面,要展示我们用户信息,包括还要查出一些订单,查出一些商品,那就去掉其他服务器的各个业务即可。

现在还有一个最大的问题,用户的 web 可能在 a 服务器上用户的业务,而订单放在 B 服务器上,如果 a 服务器要去来调 b 服务器的功能,如果垂直的应用架构是写在一个应用里面 a 直接调取 b 的方法,直接调用即可,这样的调取方式叫做进程内通讯,因为他们都在一个服务器上。如果现在发现 a 跟 b 已经分割异地在两处应用里,这两处代码之间如何互调?

把这个调用我们称为 CRPC,全称为远程过程调用。分布式服务的这个架构下,最核心的难点就是如何进行远程过程调用,以及如何拆分业务,提升我们业务的复用程度那么此时,一个好的分布式服务框架,也是来帮我们来解决远程过程调用的框架能极大地简化在开发内等问题。

后来随着业务不断的增多,分拆的服务也越来越多,有成千上万的服务器再来处理各种不同的服务,此时出现的一些资源浪费情况就尤为严重,比如用户业务这一块儿,访问量比较小,却有100台服务器在处理,而商品业务的访问量比较大,只有10台服务器在处理,此时就应该有一个能基于访问压力的调度中心,能帮我们实时监控这些数据动态的调度,提高资源的利用率。

此时就可以采用流动计算架构,引入调度中心,它负责维护这些服务之间的复杂关系,以及实时管理整个服务集群。比如 a 服务器访问量加大,就多增加几台,实施动态调整。

假设第一台有100个请求,第二台有200个请求,第三台有10000个请求,那么下一次请求出现,就应该找比较闲的服务器来处理请求,以此来提高我们整个服务的利用率。

架构的变化必然也会引起很多技术的兴起,分布式架构下,也会有非常多的技术,我们将一点一点的去探索。

相关文章
|
8天前
|
运维 持续交付 开发工具
深入浅出:GitOps在微服务架构中的应用
【10月更文挑战第26天】本文深入探讨了GitOps在微服务架构中的应用,介绍了其核心理念、自动化部署流程和增强的可观测性。通过实例展示了GitOps如何简化服务部署、配置管理和故障恢复,并推荐了一些实用工具和开发技巧。
|
1天前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
18 6
|
1天前
|
设计模式 Java API
微服务架构演变与架构设计深度解析
【11月更文挑战第14天】在当今的IT行业中,微服务架构已经成为构建大型、复杂系统的重要范式。本文将从微服务架构的背景、业务场景、功能点、底层原理、实战、设计模式等多个方面进行深度解析,并结合京东电商的案例,探讨微服务架构在实际应用中的实施与效果。
9 1
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
医疗行业的语音识别技术解析:AI多模态能力平台的应用与架构
AI多模态能力平台通过语音识别技术,实现实时转录医患对话,自动生成结构化数据,提高医疗效率。平台具备强大的环境降噪、语音分离及自然语言处理能力,支持与医院系统无缝集成,广泛应用于门诊记录、多学科会诊和急诊场景,显著提升工作效率和数据准确性。
|
7天前
|
JavaScript 持续交付 Docker
解锁新技能:Docker容器化部署在微服务架构中的应用
【10月更文挑战第29天】在数字化转型中,微服务架构因灵活性和可扩展性成为企业首选。Docker容器化技术为微服务的部署和管理带来革命性变化。本文探讨Docker在微服务架构中的应用,包括隔离性、可移植性、扩展性、版本控制等方面,并提供代码示例。
35 1
|
9天前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
36 1
|
11天前
|
前端开发 API UED
深入理解微前端架构:构建灵活、高效的前端应用
【10月更文挑战第23天】微前端架构是一种将前端应用分解为多个小型、独立、可复用的服务的方法。每个服务独立开发和部署,但共同提供一致的用户体验。本文探讨了微前端架构的核心概念、优势及实施方法,包括定义服务边界、建立通信机制、共享UI组件库和版本控制等。通过实际案例和职业心得,帮助读者更好地理解和应用微前端架构。
|
8天前
|
弹性计算 Kubernetes Cloud Native
云原生架构下的微服务设计原则与实践####
本文深入探讨了在云原生环境中,微服务架构的设计原则、关键技术及实践案例。通过剖析传统单体架构面临的挑战,引出微服务作为解决方案的优势,并详细阐述了微服务设计的几大核心原则:单一职责、独立部署、弹性伸缩和服务自治。文章还介绍了容器化技术、Kubernetes等云原生工具如何助力微服务的高效实施,并通过一个实际项目案例,展示了从服务拆分到持续集成/持续部署(CI/CD)流程的完整实现路径,为读者提供了宝贵的实践经验和启发。 ####
|
5天前
|
监控 安全 应用服务中间件
微服务架构下的API网关设计策略与实践####
本文深入探讨了在微服务架构下,API网关作为系统统一入口点的设计策略、实现细节及其在实际应用中的最佳实践。不同于传统的摘要概述,本部分将直接以一段精简的代码示例作为引子,展示一个基于NGINX的简单API网关配置片段,随后引出文章的核心内容,旨在通过具体实例激发读者兴趣,快速理解API网关在微服务架构中的关键作用及实现方式。 ```nginx server { listen 80; server_name api.example.com; location / { proxy_pass http://backend_service:5000;
|
7天前
|
缓存 监控 API
探索微服务架构中的API网关模式
随着微服务架构的兴起,API网关成为管理和服务间交互的关键组件。本文通过在线零售公司的案例,探讨了API网关在路由管理、认证授权、限流缓存、日志监控和协议转换等方面的优势,并详细介绍了使用Kong实现API网关的具体步骤。
24 3
下一篇
无影云桌面