【架构设计】单体软件分布式化思考

单体软件

单体软件是历史悠久的软件架构形态,以下是一个简单的前后端分离的单体架构的 web 软件。
请求 转发 客户端 代理层 服务 数据库

分布式部署

单体软件采用分布式方案部署,是根据需求而定的。

为了满足不同场景下的需求,单体软件中的客户端、代理层、服务、数据库,都可以以多个副本联合起来,提供服务的方式部署,这种部署方式叫做分布式部署。

这种多个副本共同提供服务的形式叫做集群服务(注意,不是分布式服务)。

客户端分布式

客户端分布式示意图
请求 转发 请求 请求 客户端1 代理层 服务 数据库 ... 客户端2

很显然,客户端天然是分布式的。

代理层分布式部署

请求 转发 请求 转发 请求 转发 客户端 代理层1 服务 数据库 ... 代理层n

现实中,仅对单体服务的代理层进行分布式

服务分布式部署

请求 转发 转发 转发 客户端 代理层 服务1 数据库 ... 服务n

数据库分布式部署

请求 转发 客户端 代理层 服务 数据库1 ... 数据库n

相关推荐
ly76891 天前
Redis 分布式锁的边界条件:Redlock 争议、锁续期与客户端崩溃后的互斥失效
数据库·redis·分布式·分布式锁·watchdog·redlock
灯澜忆梦1 天前
【minio】#5 | MinIO 分布式部署 + HTTPS 部署
分布式·网络协议·https·对象存储·minio
谢亮_vipxieliang2 天前
Spring Cloud 服务治理入门:注册发现、配置中心、网关限流、熔断降级与分布式一致性方案
分布式·spring·spring cloud
樱花落木兰2 天前
分布式登录实战:Session 会话共享改造,Redis 存储用户登录状态
java·javascript·数据库·redis·分布式·缓存
ShineWinsu2 天前
对于Redis:Steam、Geospatial、Hyperloglog、Bitmap、Bitfield类型的解析
数据库·c++·redis·分布式·缓存·面试·zset
Flynt3 天前
Redis Cluster主节点挂了,为什么"高可用"还全员掉线?我把三次kill的记录翻出来了
数据库·redis·分布式
JosieBook3 天前
【数据库】MySQL 实战精通系列 · 第10篇:分库分表与分布式事务实战
数据库·分布式·mysql
梦帮科技3 天前
vLLM / TensorRT-LLM 极限推理:PagedAttention 细粒度物理页表管理与连续批处理(Continuous Batching)实战
数据结构·人工智能·分布式·python·深度学习·算法·vllm
Frank_refuel3 天前
分布式RPC框架实战(二):服务端模块划分与底层设计
分布式·网络协议·rpc