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

单体软件

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

分布式部署

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

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

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

客户端分布式

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

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

代理层分布式部署

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

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

服务分布式部署

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

数据库分布式部署

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

相关推荐
茶杯梦轩4 天前
从零起步学习RabbitMQ || 第三章:RabbitMQ的生产者、Broker、消费者如何保证消息不丢失(可靠性)详解
分布式·后端·面试
回家路上绕了弯5 天前
深入解析Agent Subagent架构:原理、协同逻辑与实战落地指南
分布式·后端
初次攀爬者11 天前
ZooKeeper 实现分布式锁的两种方式
分布式·后端·zookeeper
断手当码农12 天前
Redis 实现分布式锁的三种方式
数据库·redis·分布式
初次攀爬者12 天前
Redis分布式锁实现的三种方式-基于setnx,lua脚本和Redisson
redis·分布式·后端
业精于勤_荒于稀12 天前
物流订单系统99.99%可用性全链路容灾体系落地操作手册
分布式
Asher050912 天前
Hadoop核心技术与实战指南
大数据·hadoop·分布式
凉凉的知识库12 天前
Go中的零值与空值,你搞懂了么?
分布式·面试·go
?Anita Zhang12 天前
联邦学习实战:如何在分布式场景下构建隐私保护机器学习模型
人工智能·分布式·机器学习
tony36512 天前
pytorch分布式训练解释
人工智能·pytorch·分布式