一个项目的架构演进

1,单体架构

垂直升级:4核16GB -> 8核64G

水平扩展:一台服务器扩展成多台

存在以下几个问题

1,提升的性能是有限的

2,更新,维护成本非常高,对于系统中要修改或增加的功能,整个发布的流程非常麻烦

3,某一模块出现bug,就会影响整个系统

2,垂直应用架构

根据业务边界拆分服务,每一个功能称为一个服务,将应用拆分成互不相干的几个应用(不涉及到多个服务之间的通信)

存在以下问题

1,公共部分要部署多份,对公共部分的修改,部署,更新都需要重复的操作(例:用户管理模块每个服务都需要有相应的业务代码,而且对应增删改查后各模块都需要同步更新),带来比较大的成本,为了解决这一问题,接下来就进入分布式应用架构阶段

3,分布式应用架构

在这个阶段里,将服务内部公用的模块抽取出来,部署成独立的服务,那么需要解决服务之间高效的通信问题

rpc协议:规定了数据的格式和传输的方式

分布式应用架构阶段涉及到的问题:

1,服务越来越多,服务如何被发现

2,服务越来越多,服务如何被治理

3,服务之间如何实现高效的通信

4,微服务架构阶段

微服务架构阶段主要解决的几个问题:

1,服务的注册和发现:这么多服务如何注册,这么多服务如何被发现

2,服务之间的高效调用:使用rpc或者http进行通信

3,服务治理:服务权重,负载均衡,服务熔断,限流等等一些服务治理方面的问题

相关推荐
Patrick_Wilson16 小时前
幂等到底是什么?从前端视角讲透 SQL、HTTP 与 POST 接口的幂等设计
前端·后端·架构
禅思院18 小时前
Vite vs Webpack 深度对比:从启动原理到生产构建,一篇就够了
前端·架构·前端框架
Cerrda2 天前
开发体验升级:UnoCSS 自定义 SVG 图标热更新方案
架构·前端框架
Kstheme2 天前
把任何 GitHub 仓库变成系统设计课:这个开源项目做到了
架构
禅思院2 天前
路由性能高可用架构实战方案
前端·架构·前端框架
贵慜_Derek3 天前
《从零实现 Agent 系统》连载 32|闭集 IE 与小模型:分类、意图与字段抽取
人工智能·架构·agent
江米小枣tonylua3 天前
译:设计生产级 RAG 架构
架构
怕浪猫3 天前
领域特定语言(Domain-Specific Language, DSL)
设计模式·程序员·架构
怕浪猫3 天前
哪些软件对 Chrome DevTools Protocol 频繁使用
人工智能·架构·前端框架