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

ops/2024/10/20 11:39:49/

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

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

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

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

图1 第十阶段网站架构 

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

 2.分布式服务服务器

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

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

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

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


http://www.ppmy.cn/ops/22169.html

相关文章

Rapidly exploring Random Trees(RRT)类算法

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录前言Rapidly exploring Random Trees(RRT)类算法(1)基于采样的普通路径规划算法--RRT(Rapidly Exploring Random Tree)1.RRT图例2.RRT原理3.RRT伪代…

ai对我们生活的影响

AI(人工智能)已经逐渐渗透到我们生活的方方面面,产生了广泛而深远的影响。以下是AI对我们生活的一些主要影响: 工作效率提升:AI技术可以自动执行重复、繁琐或危险的任务,从而解放人力资源,提高…

Baumer工业相机堡盟工业相机如何通过NEOAPISDK查询和轮询相机设备事件函数(C#)

Baumer工业相机堡盟工业相机如何通过NEOAPISDK查询和轮询相机设备事件函数(C#) Baumer工业相机Baumer工业相机NEOAPI SDK和相机设备事件的技术背景Baumer工业相机通过NEOAPISDK在相机中查询和轮询相机设备事件函数功能1.引用合适的类文件2.通过NEOAPISDK…

如何解决pycharm创建项目报错 Error occurred when installing package ‘requests‘. Details.

🐯 如何解决PyCharm创建项目时的包安装错误:‘requests’ 🛠️ 文章目录 🐯 如何解决PyCharm创建项目时的包安装错误:requests 🛠️摘要引言正文📘 **问题分析**🚀 **更换Python版本…

Working with Design Patterns in Go (Golang)

introduction: 1、go及GoLand的下载安装: 安装包下载地址为:https://golang.org/dl/ 推荐使用国内地址:Go下载 - Go语言中文网 - Golang中文社区 2、Docker Docker允许开发中将应用、依赖、函数库、配置一起打包,形成可移植镜…

k8s Dashboard 运维维护记录

k8s Dashboard 运维维护记录 k8s Dashboard 运维维护记录 Q1:需要使用firefox浏览器访问 提示了证书错误NET::ERR_CERT_INVALID,原因是由于物理机的浏览器证书不可用 需要注意的是,若提示“连接不安全”的警告时,点击“高级”…

CMUS狮身人面像(六)-调整语音识别准确性

调整语音识别准确性 精度差的原因测试数据库设置运行测试 语音识别的准确性并不总是很高。 首先,重要的是要了解您的准确性是否只是低于预期,还是总体上非常低。如果总体精度非常低,则您很可能错误配置了解码器。如果低于预期,可…

开源相机管理库Aravis例程学习(五)——camera-api

开源相机管理库Aravis例程学习(五)——camera-api 简介例程代码函数说明arv_camera_get_regionarv_camera_get_pixel_format_as_stringarv_camera_get_pixel_formatARV_PIXEL_FORMAT_BIT_PER_PIXEL 简介 本文针对官方例程中的:03-camera-api…