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

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

开发者学堂课程【阿里巴巴分布式服务框架 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个请求,那么下一次请求出现,就应该找比较闲的服务器来处理请求,以此来提高我们整个服务的利用率。

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

相关文章
|
11天前
|
人工智能 JavaScript 前端开发
GenSX (不一样的AI应用框架)架构学习指南
GenSX 是一个基于 TypeScript 的函数式 AI 工作流框架,以“函数组合替代图编排”为核心理念。它通过纯函数组件、自动追踪与断点恢复等特性,让开发者用自然代码构建可追溯、易测试的 LLM 应用。支持多模型集成与插件化扩展,兼具灵活性与工程化优势。
62 6
|
27天前
|
人工智能 Cloud Native 中间件
划重点|云栖大会「AI 原生应用架构论坛」看点梳理
本场论坛将系统性阐述 AI 原生应用架构的新范式、演进趋势与技术突破,并分享来自真实生产环境下的一线实践经验与思考。
|
1月前
|
机器学习/深度学习 人工智能 vr&ar
H4H:面向AR/VR应用的NPU-CIM异构系统混合卷积-Transformer架构搜索——论文阅读
H4H是一种面向AR/VR应用的混合卷积-Transformer架构,基于NPU-CIM异构系统,通过神经架构搜索实现高效模型设计。该架构结合卷积神经网络(CNN)的局部特征提取与视觉Transformer(ViT)的全局信息处理能力,提升模型性能与效率。通过两阶段增量训练策略,缓解混合模型训练中的梯度冲突问题,并利用异构计算资源优化推理延迟与能耗。实验表明,H4H在相同准确率下显著降低延迟和功耗,为AR/VR设备上的边缘AI推理提供了高效解决方案。
269 0
|
17天前
|
机器学习/深度学习 自然语言处理 算法
48_动态架构模型:NAS在LLM中的应用
大型语言模型(LLM)在自然语言处理领域的突破性进展,很大程度上归功于其庞大的参数量和复杂的网络架构。然而,随着模型规模的不断增长,计算资源消耗、推理延迟和部署成本等问题日益凸显。如何在保持模型性能的同时,优化模型架构以提高效率,成为2025年大模型研究的核心方向之一。神经架构搜索(Neural Architecture Search, NAS)作为一种自动化的网络设计方法,正在为这一挑战提供创新性解决方案。本文将深入探讨NAS技术如何应用于LLM的架构优化,特别是在层数与维度调整方面的最新进展,并通过代码实现展示简单的NAS实验。
|
2月前
|
Web App开发 Linux 虚拟化
Omnissa Horizon 8 2506 (8.16) - 虚拟桌面基础架构 (VDI) 和应用软件
Omnissa Horizon 8 2506 (8.16) - 虚拟桌面基础架构 (VDI) 和应用软件
139 0
Omnissa Horizon 8 2506 (8.16) - 虚拟桌面基础架构 (VDI) 和应用软件
|
19天前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
3月前
|
缓存 Cloud Native Java
Java 面试微服务架构与云原生技术实操内容及核心考点梳理 Java 面试
本内容涵盖Java面试核心技术实操,包括微服务架构(Spring Cloud Alibaba)、响应式编程(WebFlux)、容器化(Docker+K8s)、函数式编程、多级缓存、分库分表、链路追踪(Skywalking)等大厂高频考点,助你系统提升面试能力。
169 0
|
10月前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
11月前
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
276 3