大型网站系统架构演化实例_9.分布式服务

1. 第十阶段:分布式服务

随着业务拆分越来越小,存储系统越来越庞大,应用系统的整体复杂度呈指数级增加,部署维护越来越困难。由于所有应用要和所有数据库系统连接,在数万台服务器规模的网站中,这些连接的数目是服务器规模的平方,导致数据库连接资源不足,拒绝服务。

既然每一个应用系统都需要执行许多相同的业务操作,比如用户管理、商品管理等,那么可以将这些共用的业务提取出来,独立部署。由这些可复用的业务连接数据库,提供共用业务服务,而应用系统只需要管理用户界面,通过分布式服务调用共用业务服务完成具体业务操作。

此时,网站系统架构如图1所示。

图1 第十阶段网站架构

大型网站的架构演化到这里,基本上大多数的技术问题都得以解决,诸如跨数据中心的实时同步和具体网站业务相关的问题也都可以通过组合改进现有技术架构解决。

2.分布式服务服务器

**分布式服务是一种计算模型,其中的数据和程序不位于单一的服务器上,而是分散到多个服务器。**这种模型有助于在整个计算机系统上分配和优化任务,克服了传统集中式系统中可能出现的资源紧张和响应瓶颈。分布式服务特别适用于需要处理大量数据或处理复杂计算的场景。

分布式服务的几个关键特征和组件包括:

  • 服务拆分。系统被分解为多个小型、独立的服务,每个服务负责特定的功能,以便解耦系统和独立扩展。
  • 服务注册与发现。通过服务注册中心(如ZooKeeper、Consul或Eureka)使服务能够相互通信。
  • 消息队列。用于异步发送和接收请求响应,减轻单个服务的负担,并在负载高峰时提供缓冲。
  • 负载均衡。使用算法(如轮询、加权轮询、最少连接数)和负载均衡器(如Nginx、HAProxy)来分发请求,确保各服务的负载均衡。
  • 数据分区。将数据划分为多个分区,每个分区存储在不同的节点上,提高系统的可伸缩性和可靠性。
  • 容错和恢复。设计策略(如备份、复制、故障转移)以确保系统在节点或网络故障时仍能运行。
  • 监控和日志。实时监控系统状态和性能,记录日志以便及时发现问题和确保系统稳定。

此外,分布式不同于集群和微服务,但微服务是分布式的一种形式,意味着大任务被划分为独立的小任务,这些小任务可以在不同的服务器上运行。

相关推荐
长不大的杨瑞杰2 天前
ChatGPT 广告技术栈架构拆解:多轮意图、LLM 工具编排、ANN 召回与拍卖闭环
人工智能·chatgpt·系统架构·推荐系统·广告
艺杯羹3 天前
Windows原生软件锁设计:从暴力杀进程丢数据到零轮询事件驱动架构
windows·系统架构·开源·开源软件·内存管理·开源协议
jktantan3 天前
注解式脱敏:用 Jackson 的 ContextualSerializer 做字段级策略(一)
spring boot·后端·算法·spring cloud·系统架构
艺杯羹5 天前
MCP本地服务集成避坑:从Stdio管道僵死到双向JSON-RPC稳健通信
人工智能·python·ai·系统架构·大语言模型·ai编程·mcp
奇树谦5 天前
Qt Quick 图片加载与 GPU 纹理机制详解:QImage、QQuickTextureFactory、QSGTexture 与异步加载
开发语言·qt·系统架构
无心水6 天前
24、系统架构师论文写作专题 核心考点与学习笔记
笔记·学习·系统架构·架构师·安全架构·软考架构师·软考系统架构设计师
拆房老料7 天前
DeepSeek Super-agent 架构解析:从单任务 Agent 到持续运行的任务系统
人工智能·设计模式·系统架构
Jmyd01237 天前
文物3D数字化的技术选型指南:从WW/T 0115标准到落地工程,一次讲透采集、建档、管理与展示
3d·系统架构·博物馆·数字展厅·博物馆数字化
薛定谔的猫-菜鸟程序员8 天前
软件架构设计师开发资料大全(从入门到精通)
后端·python·系统架构·flask·架构设计师
被放养的研究生8 天前
第一章 信息系统架构
系统架构·金融监管计算机类