(二)读写分离架构、冷热分离架构

news2025/7/15 14:57:42

文章目录

  • 读写分离架构
    • 什么是读写分离结构
    • 架构模型
    • 优缺点
      • 优点
      • 缺点
    • 技术案例
      • 写情况
      • 读情况
  • 冷热分离架构
    • 什么是冷热分离架构?
    • 架构模型
    • 优缺点
      • 优点
    • 缺点
    • 技术案例
      • 读数据
      • 写数据

读写分离架构

什么是读写分离结构

读写分离架构针对于数据库。数据库原本负责读写两个功能。 读写分离架构就是添加多台数据库服务器, 其中主数据库一般负责写, 从数据库一般负责读。

读写分离架构也叫做主从分离架构, 一台数据库服务器作为主服务器, 然后为这台主服务器添加冗余(从服务器)。 这样做的好处有很多, 下面优缺点提到。

架构模型

在这里插入图片描述

在这里插入图片描述

优缺点

优点

  • 可以应对更高的并发量, 读写分离,从数据库分担了主数据库的读请求。
  • 高可用性, 增加了系统的冗余, 当主数据库崩溃时, 从数据快速顶替主数据库,不影响用户体验。
  • 从数据库可以进行横向扩展,使数据库对于读具有扩展性。读请求理论上不再称为瓶颈。
  • 主数据和从数据库通过网络实现数据同步一致。

缺点

  • 硬件资源的成本增加, 运维成本增加
  • 单点写瓶颈, 写并发极高时主数据称为瓶颈
  • 数据不一致性, 数据网络同步需要时间, 用户写入后想要立即读取,可能读取不到最新更新信息。
  • 主数据库同步时崩溃会导致数据丢失。

技术案例

写情况

  • 用户使用域名访问服务器,先访问dns, dns返回一个IP地址。
  • 用IP地址进行路由访问应用服务器。访问哪一个? 先到达最外层的负载均衡服务器, 由最外层的负载均衡服务器将这个请求分发下层自己管理的某个服务器。
  • 这个服务器接收到请求, 如果这个服务器还是一个负载均衡服务器, 就重复刚刚类似的操作。
  • 如果这个服务器是一个应用服务器, 那么应用服务器对请求进行解析。
  • 如果是写请求, 就去主数据库中写入数据,将数据通过网络发送给主数据库服务器。 然后就返回写入情况, 是写入成功还是失败。对于应用服务集群来说, 应用服务器集群一层一层向上返回请求处理情况; 对于主从数据库集群来说, 主数据库要将刚刚写入的数据同步给从数据库。

在这里插入图片描述

读情况

  • 用户拿着 域名 访问应用服务器, 然后域名交给dns进行解析, 返回IP地址。
  • 浏览器用IP地址路由到对应的服务集群中。 具体访问哪一个应用服务节点, 由上层的负载均衡服务器一层

一层向下分发决定。

  • 应用服务节点拿到请求后, 对请求进行解析。 解析成功认为是读请求, 那么就直接去主从数据库集群里面的从数据库节点读取数据。 然后返回读取结果。

在这里插入图片描述

冷热分离架构

什么是冷热分离架构?

冷热分离是将数据分为冷数据和热数据。 热数据存放在内存缓存中。 冷数据放在磁盘中。 一个数据库服务器或者集群作为缓存数据库服务器, 存储热数据。 然后另一个数据库集群用来存储冷数据。

架构模型

在这里插入图片描述

优缺点

优点

  • 分担了读取的压力, 减少了从库的数量, 优化成本。
  • 利用内存存储数据, 内存的读取速度远高于磁盘IO。 提高了数据查询的效率, 优化效率。

缺点

  • 增加系统的复杂性, 增加运维成本。
  • 数据同步过程中如果数据库崩溃, 造成数据丢失和数据不一致问题。
  • 写的高并发仍然可能是系统的瓶颈。

技术案例

读数据

  • 发送请求, dns返回IP地址, 然后路由到应用服务集群, 应用服务集群再一系列分发处理将请求送到应用服务器。
  • 当解析后, 如果是读数据, 那么就看一下缓存服务器中是否有这个数据, 如果有直接返回。
  • 如果没有找到对应的数据, 就要去主从数据库集群中去读取数据。

在这里插入图片描述

写数据

  • 写入数据时是否写入到缓存数据中还是写入到主数据库中根据业务场景决定, 一般情况下直接写入到主数据库。
  • 写入到主数据库后, 主数据库有两种策略: 一种是直接同步到缓存数据库, 一种是给缓存数据库发送一个数据失效标记。 第一种的优点是高一致性, 但是高延迟。 第二种的优点是低延迟, 但是最终一致性(允许数据短暂不一致)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2343777.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TS-300B浊度传感器详解(STM32)

目录 一、介绍 二、传感器原理 1.原理图 2.引脚描述 三、程序设计 main文件 ts.h文件 ts.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 TS-300B浊度传感器介绍: 浊度是指溶液对光线通过时所产生的阻碍程度,它包括悬浮物对光的散射和…

Unity Paint In 3D 入门

插件版本4.1.8 快速开始 这是一个强大的,可自由涂鸦的Unity插件. 步骤1 任何带有 MeshFilter MeshRenderer 或 SkinnedMeshRenderer 的 GameObject 均可被喷涂。​​ ​​方法1​​ 为 GameObject 添加 CwPaintableMesh 组件。 ​​方法2​​ 点击 MeshRenderer 或 Skinne…

PyMC+AI提示词贝叶斯项目反应IRT理论Rasch分析篮球比赛官方数据:球员能力与位置层级结构研究

全文链接:tecdat.cn/?p41666 在体育数据分析领域不断发展的当下,数据科学家们致力于挖掘数据背后的深层价值,为各行业提供更具洞察力的决策依据。近期,我们团队完成了一项极具意义的咨询项目,旨在通过先进的数据分析手…

⭐Unity_Demolition Media Hap (播放Hap格式视频 超16K大分辨率视频 流畅播放以及帧同步解决方案)

播放大分辨率视频以及实现局域网视频同步是许多开发者会遇到的需求,AVPro有一个 Ultra Edition版本,也能播放Hap格式视频,之外就是Demolition Media Hap插件啦,实测即使是 7208*3808 大分辨率的视频帧率还是能稳定在30帧,它能帮助我们轻松解决…

【数据可视化-22】脱发因素探索的可视化分析

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个…

kubernetes》》k8s》》Heml

Heml 资料 下载地址 安装 curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash# helm 添加 仓库 # helm repo add 仓库名称 仓库地址 helm repo add stable http://mirror.azure.cn/kubernetes/charts/ # 移除仓库 helm repo remove 仓库名…

MySQL表的操作 -- 表的增删改查

目录 1. 表的创建2. 表的查看3. 表的修改4. 表的删除5. 总结 1. 表的创建 1.查看字符集及效验规则 2. 表的创建 CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎;创建用户表1 创建用…

GIS开发笔记(12)基于osg和osgearth实现三维地图上的轨迹线绘制

一、实现效果 二、实现原理 1.设置起点和终点,用函数模拟出轨迹点,如从武汉到长春; 2.将地理坐标点转换成为世界坐标点; 3.根据世界坐标点绘制轨迹线,并设置样式; 4.将轨迹节点挂接到根节点,并定位。 三、参考代码 void MainWindow::sltDrawTrajectory() {qDebug(

MTKAndroid13-Launcher3 屏蔽部分app不让显示

实现Launcher3 桌面屏蔽部分内容,不让显示 文章目录 修改文件路径-实现方式基础-源码模块配置Launcher3 源码位置编译模块配置配置如下参数 属性配置:默认的Launcher3 选项配置GMS的Launcher3 配置 第三方Launcher需要默认为Launcher时候-系统Launcher3 …

PostgreSQL 数据库备份与恢复全面指南20250424

PostgreSQL 数据库备份与恢复全面指南 在数据库管理中,备份与恢复操作对于确保数据安全性、可用性和完整性至关重要。PostgreSQL 作为一款开源关系型数据库系统,广泛应用于各行各业,尤其在现代 AI 和大数据应用中,作为数据存储的…

专家系统的知识获取、检测与组织管理——基于《人工智能原理与方法》的深度解析

前文我们已经了解了专家系统的基本概念和一般结构,系统中有专业的知识才是专家系统的关键,接下来对专家系统中的知识是如何获取、检测、组织和管理的进行探讨。 1.专家系统的基本概念:专家系统的基本概念解析——基于《人工智能原理与方法》…

让Editplus支持squirrel语言

用EditPlus配置完实现关键字、函数、高光代码、自动完成、代码调试。先看看效果: 主要是由 nut.stx (语法文件)和 nut.acp (自动完成)两个文件 实现 Nut.stx文件内容: ---------------------------------…

Leetcode 2845 题解

还是要把自己做题的思路写出来的,但是结果可能还是得去观摩一下题解,无论是大佬写的题解还是leetcode官方写的题解,看完题解后再去反思才能有收获,即使下次遇见一样的题不见得能写出来,但有思路比没思路更重要。 今天写…

【爬虫】DrissionPage-获取douyim用户下的视频

之前看过DrissionPage,觉得很厉害,比selenium简单,适合新手。因为盲目跟风逆向,今天看了一个DrissionPage案例直播,学习一下,真香哈。 DrissionPage官网:🛰️ 概述 | DrissionPage官…

【Python爬虫基础篇】--3.cookie和session

目录 1.cookie 1.1.定义 1.2.参数 1.3.分类 2.session 3.使用cookie登录微博 4.使用session登录 1.cookie 由于http是一个无状态的协议,请求与请求之间无法相互传递或者记录一些信息,cookie和session正是为了解决这个问题而产生。 例子&#xff1…

分数线降低,25西电马克思主义学院(考研录取情况)

1、马克思主义学院各个方向 2、马克思主义学院近三年复试分数线对比 学长、学姐分析 由表可看出: 1、马克思主义理论25年相较于24年下降10分,为355分 3、25vs24推免/统招人数对比 学长、学姐分析 由表可看出: 1、 马克思主义学院25年共接…

Cancer Cell|scRNA-seq + scTCR + 空间多组学整合分析,揭示CD8⁺ T细胞在免疫治疗中的“双路径” | 临床问题的组学解答

Cancer Cell|scRNA-seq scTCR 空间多组学整合分析,揭示CD8⁺ T细胞在免疫治疗中的“双路径” 👋 欢迎关注我的生信学习专栏~ 如果觉得文章有帮助,别忘了点赞、关注、评论,一起学习 近日,《Cancer Cell》…

C# 下 using 块的作用 + VS2022 下 using 语法糖怎样工作

🔍 using 的本意是什么? using 是 C# 中用于 自动释放资源 的语法糖,适用于实现了 IDisposable 接口的对象(比如数据库连接、文件、网络流等)。 🧐 首先看下SqlSugarClient类部分源码: SqlSug…

实体店的小程序转型之路:拥抱新零售的密码-中小企实战运营和营销工作室博客

实体店的小程序转型之路:拥抱新零售的密码-中小企实战运营和营销工作室博客 在当今数字化浪潮的冲击下,实体店面临着前所未有的挑战,但小程序的出现为实体店转型新零售带来了新的曙光。先来看一组惊人的数据,据相关统计&#xff…

UML 类图基础和类关系辨析

UML 类图 目录 1 概述 2 类图MerMaid基本表示法 3 类关系详解 3.1 实现和继承 3.1.1 实现(Realization)3.1.2 继承/泛化(Inheritance/Generalization) 3.2 聚合和组合 3.2.1 组合(Composition)3.2.2 聚…