一个项目的架构演进

1,单体架构

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

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

存在以下几个问题

1,提升的性能是有限的

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

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

2,垂直应用架构

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

存在以下问题

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

3,分布式应用架构

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

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

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

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

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

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

4,微服务架构阶段

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

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

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

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

相关推荐
啷里格啷13 小时前
第三章 Fast-DDS核心源码导读与流程拆解-Discovery机制
后端·架构
什么半岛铁盒13 小时前
LangChain 入门与架构:快速搭建你的第一个 AI 应用
人工智能·架构·langchain
mirror_zAI13 小时前
C++ 仿 QQ 聊天室项目:Qt 客户端 + epoll 服务端 + Reactor 架构(含源码)
c++·qt·架构
啷里格啷14 小时前
第三章 Fast-DDS核心源码导读与流程拆解
后端·架构
BU摆烂会噶14 小时前
【LangGraph】House_Agent 实战(一):架构与环境配置
人工智能·vscode·python·架构·langchain·人机交互
woniu_buhui_fei14 小时前
单体服务拆分微服务
微服务·架构
heimeiyingwang14 小时前
【架构实战】日志体系ELK:集中化日志管理实践
elk·架构·wpf
BU摆烂会噶14 小时前
【LangGraph】House_Agent 实战(五):持久化、流式输出与部署
人工智能·python·架构·langchain·人机交互
Trouvaille ~14 小时前
【Redis篇】为什么需要 Redis:从单机到分布式的架构演进之路
数据库·redis·分布式·缓存·中间件·架构·后端开发
启山智软14 小时前
从零搭建商城系统前端:技术选型与核心架构实践
前端·架构