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

单体软件

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

分布式部署

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

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

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

客户端分布式

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

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

代理层分布式部署

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

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

服务分布式部署

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

数据库分布式部署

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

相关推荐
杨运交5 小时前
[060][调度模块]Redisson vs Redis 原生锁:两种分布式锁实现深度对比
数据库·redis·分布式
heimeiyingwang10 小时前
【架构实战】分布式事务:从CAP定理到Seata实战,一文讲透跨服务数据一致性
分布式·架构
lakernote14 小时前
图解 Kafka Consumer 常用 API:poll、seek、pause、wakeup 到底在控制什么?
分布式·kafka·linq
数据库小学妹17 小时前
集群与分布式啥区别?从主从集群到分布式实战
分布式·分布式数据库·数据库架构·集群·分库分表·主从集群·集群与分布式
江畔柳前堤17 小时前
AgentScope 设计与原理全解:从消息原语到分布式智能体工程底座
大数据·人工智能·分布式·目标检测·机器学习·语言模型·架构
萧瑟余晖18 小时前
Java深入解析篇三十四之分布式事务
java·开发语言·分布式
零域码客18 小时前
Redis 双刃剑:缓存与分布式锁的本质区别
redis·分布式·缓存·并发控制·后端架构
hopsky20 小时前
kafka 对发送端的容错处理
数据库·分布式·kafka
ltl1 天前
3D 并行深度:数据 / 张量 / 流水 / 序列 / ZeRO
分布式
FserSuN2 天前
回顾Spark的概念与应用
大数据·分布式·spark