分布式应用架构的演变

整体演变过程

第一阶段:单一应用架构

单一应用架构,是把所有服务都放在一个项目中,进行打包部署到服务器上,如果流量特别大的话,就在另外的服务器上部署相同的功能模块用来分摊流量。但是这样的话,一旦有某个功能模块需要修改,就需要将修改后的整个项目重新打包部署到这些服务器上

第二阶段:垂直应用架构

将大的应用拆成了各个独立的小应用,且每个应用都是完整的,从页面到业务逻辑到程序数据库都是完整的。当某一块的小应用用户访问量比较大,就将该应用多放几台,分摊访问量

优点:

  1. 分工独立,不同的人负责开发维护不同的模块,各个模块互不干扰
  2. 性能扩展比较容易,如用户模块需要扩展,就直接将用户模块放在多个服务器上就好了

缺点:

  1. 因为界面可能需要经常美化,所以页面一改,就需要把这个小业务模块的整个都重新部署(即:没实现界面+业务逻辑的分离
  2. 模块可能会逐渐增多,业务模块间可能做不到完全独立,大量的应用之间需要交互

第三阶段:分布式服务架构

将界面与业务逻辑分离开,此时web界面可能与Service逻辑业务不在同一个服务器上,之前在同一个服务器上时,属于进程间调用;现在的话,在不同服务器间调用,我们称为RPC(远程过程调用)

缺点:可能用户业务访问量比较小,却有100台服务器在跑,商品业务访问量比较大,却只有10台服务器在跑,就会造成资源的浪费,此时就需要一个调度中心,能够实时监控流量等数据,来基于访问压力来动态分配服务器资源,提高资源利用率

第四阶段:流动计算架构

引入调度中心,用于维护各个不同服务模块之间的复杂关系以及实时管理整个服务集群。给不同访问压力的业务逻辑分配不同大小的服务器资源,且同一个业务逻辑,优先将新来的请求分配给正在处理该模块业务逻辑的服务器中压力较小的那个(比如用户模块被分配了3台服务器,服务器1正在处理10个请求,服务器2正在处理1000个请求,服务器3正在处理100000个请求,那么新进来的请求就会分配给服务器1或者2而不分配给3了)

优点:基于访问压力实时管理集群容量,提高集群利用率

参考链接:https://www.bilibili.com/video/BV1ns411c7jV

相关推荐
郑州光合科技余经理8 分钟前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
2601_962071578 分钟前
类变量和全局变量的生命周期有什么区别?
java·开发语言·jvm
code2cat20 分钟前
Java进阶篇之AtomicReference:一次替换引用,读到一份完整状态
java·并发编程·不可变对象·atomicreference
专业程序开发源23 分钟前
springboot简历管理系统81389-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·php·课程设计
Wang's Blog24 分钟前
Java 项目实战: 外卖平台优化-前后端分离开发模式与工程拆分
java·开发语言
IT大白鼠1 小时前
图数据库系列 · 第 02 篇——架构拆解:原生图存储到因果集群
数据库·架构·nosql
HEJOO91 小时前
指针的算术运算详解
java·数据结构·算法
sunshine22 girl1 小时前
Java学习六 Java常见API-2--String-3-字符串的截取替换和其他方法
java·开发语言·学习
EatFan2 小时前
从“框架混战“到“运行时收敛“:2026 年 AI Agent 开发框架的三条路线之争
java·数据库·人工智能·多智能体·ai agent·mcp·agent 框架
mftang2 小时前
CANopen协议:基于CAN的高层协议架构、通信模型与工业应用深度解析
架构·canopen·对象字典·canopen fd