分布式
前言
了解什么是分布式,得先了解应用系统的分层和分割。
分层
分层是将系统在横向维度上切分成几个部分,每个部分负责比较单一的职责,然后通过上层对下层的依赖和调用组成一个完整的系统。网站软件系统可分层为应用层、服务层、数据层。
应用层:负责具体业务和视图展示。(可再细分为视图层和业务逻辑层)
服务层:为应用层提供服务支持。(可再细分为数据接口层和逻辑处理层)
数据层:提供数据存储访问服务。
PS:禁止跨层次调用和逆向调用。
分割
分割是将系统在纵向维度上进行切分,将不同的功能和服务分割开来,包装成高内聚低耦合的模块单元,我们常说的微服务就是这样。
分布式
分布式部署是将不同模块(分层、分割后的模块)部署在不同的服务器上,通过远程调用协调工作。与负载均衡区别在于,负载均衡集群上的服务器的内容是相同的,而分布式集群上的是不同的。
优点
1、可以使用更多计算机资源,能够处理并发访问和数据量更大。
缺点
1、分布式服务调用必须通过网络,可能对性能影响大。
2、越多服务器,某一机器宕机,可能导致很多应用不可用。
3、开发管理维护复杂性、难度更高。
常用的分布式方案
1、分布式应用和服务
将分层和分割后的应用和服务模块分布式部署。
2、分布式静态资源
网站静态资源如JS、CSS、Logo图片等资源独立分布式部署。
3、分布式数据和存储
海量数据进行分布式存储。
PS:各种NOSQL产品几乎都是分布式的。
4、分布式计算
业务计算规模非常大的,使用Hadoop及其MapReduce分布式计算框架进行批处理计算。
5、分布式缓存
分布式缓存将数据缓存在一个专门的分布式缓存集群中,应用程序通过网络通信访问缓存数据。
6、分布式文件系统
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)