当前位置: 首页 > news >正文

【Redis/1-前置知识】分布式系统概论:架构、数据库与微服务

文章目录

  • 一、分布式系统知识
    • 1. 单机架构
    • 2. 分布式系统
    • 3. 数据库分离
    • 4. 负载均衡与缓存
    • 6. 数据库分库分表
    • 6. 微服务架构
  • 二、分布式系统基本概念
    • 1. 应用(Application)/ 系统(System)
    • 2. 模块(Module)/ 组件(Component)
    • 3. 分布式(Distributed)
    • 4. 集群(Cluster)
    • 5. 分布式 vs 集群
    • 6. 主从架构(Master/Slave)
    • 7. 中间件(Middleware)

一、分布式系统知识

Redis作为现代应用架构中的重要组件,在正式学习前最好先理解其背后的相关概念。

1. 单机架构

单机架构是最简单的系统部署方式,所有组件(应用、数据库、缓存等)都运行在单一服务器上。在这种架构中:

  • 部署简单,无需考虑网络通信
  • 数据访问快速(本地内存/磁盘)
  • 但存在单点故障风险
  • 性能受限于单台机器资源

Redis最初就是作为单机内存数据库设计的,即使在单机环境下也能显著提升应用性能,通过内存存储避免磁盘I/O瓶颈。

在这里插入图片描述

2. 分布式系统

对于单机架构有一个致命的问题,一台主机的硬件资源是有限的,包括但不限于:CPU、内存、硬盘、网络等,此时我们就需要引入更多的主机(硬件资源),即分布式架构:

分布式系统由多台计算机组成的系统,这些计算机通过网络通信协同工作。Redis在分布式环境中有两种主要形式:

  • Redis集群:官方提供的分布式解决方案,数据分片存储在多个节点
  • 主从复制:读写分离,提高读取性能

比如我们可以将单机架构中的数据库服务,单独分配给一个服务器:

在这里插入图片描述

这样对于存储服务器,需要更大的硬盘与更快的数据访问速度;对于应用服务器,需要配置较高的CPU与内存。就实现了分布式架构/

3. 数据库分离

在实际的应用场景中,一般读的频率是远高于写的频率的,因此我们可以采用数据库读写分离的方式提高整体效率。

在这里插入图片描述

这种情况一般是一主多从,即有一个主服务器,多个从服务器,数据库服务器通过负载均衡的方式让从服务器进行访问,主服务器负责派发任务。

4. 负载均衡与缓存

但尽管引入了数据库读写分离的技术,依然存在一个问题:

  1. 数据库中的数据是存储在硬盘中的,其访问速度是比较慢的。
  2. 如果我们将数据库中的数据放在缓存中,岂不是解决这个问题了?
    • 缓存中的数据访问速度很快,但是其容量很小!!
  3. 在实际的应用场景中,数据库中的数据只有小部分是会被高频访问的,即20%的数据能够支持80%的访问量。
    • 所以只要我们将被高频访问的小部分数据放在缓存中,就能很好的解决这个问题。
  4. Redis充当的就是整个系统中的“缓存”的功能
    在这里插入图片描述

负载均衡将工作负载分配到多个计算资源上。Redis在负载均衡中扮演重要角色:

  • 集中式会话存储(Session Storage)
  • 缓存共享,使多个应用服务器能访问同一缓存池-
  • 配合负载均衡器(如Nginx)实现请求分发

例如,用户请求被负载均衡器分配到任意应用服务器,所有服务器都能从同一Redis实例获取用户会话数据。


6. 数据库分库分表

我们针对数据库进行进一步的拆分,即分库分表。

  • 对于一个数据库服务器,会有多个数据库(database)
  • 我们可以引入多个数据库服务器,每个数据库服务器存储一个或部分数据库。

分库分表是将大数据库/表拆分为小的、更易管理的部分。Redis在这里的作用:

  • 减轻查询压力:缓存复杂查询结果
  • 掩盖分库分表复杂性:应用层通过统一缓存接口访问
  • 提高JOIN操作效率:缓存关联结果
  • 全局ID生成:为分片数据库提供唯一ID

例如,电商平台将订单表按用户ID分片,Redis可以缓存用户最近订单,避免跨分片查询。

在这里插入图片描述


6. 微服务架构

对于之前的应用服务器、一个服务器程序中有很多业务;
可能会导致服务器的代码变得越来越复杂。
为了方便维护代码与系统,可以把一个复杂的服务器,拆分为多个功能单一、体量更小的服务器;即微服务。

微服务将应用拆分为小型、独立的服务。

Redis的轻量级和高性能使其成为微服务架构的理想中间件。

微服务的优势:

在这里插入图片描述


二、分布式系统基本概念

1. 应用(Application)/ 系统(System)

定义
为实现特定服务目标而设计的独立程序或一组协同工作的程序集合。

生活类比
类似为完成项目任务而组建的团队(单人或多角色协作)。


2. 模块(Module)/ 组件(Component)

定义
在复杂系统中,将高内聚、功能明确的逻辑单元抽象为独立实体,以实现职责分离。

生活类比
军队执行任务时划分的职能小组(如突击组、爆破组),各司其职且协同运作。


3. 分布式(Distributed)

定义
系统的不同组件部署于多个物理主机,依赖网络通信实现协作的架构形态。

关键特征

  • 跨主机部署
  • 网络通信依赖

生活类比
跨国企业团队分散在不同地区,通过远程协作完成工作。


4. 集群(Cluster)

定义
多台服务器上部署的同类组件集合,共同提供特定服务能力的逻辑实体。

典型场景

  • 数据库集群(如多MySQL实例)
  • Web服务器集群

生活类比
军队集中炮兵部队形成火力打击单元,针对同一目标协同作战。


5. 分布式 vs 集群

核心区别

维度分布式集群
强调重点物理部署形态逻辑服务目标
组件关系异构组件协作同质组件冗余
通信要求必须跨网络可同主机或跨网络

6. 主从架构(Master/Slave)

定义
集群中通过角色划分实现责任分离的架构模式:

  • 主节点:承担核心操作(如数据写入)
  • 从节点:同步主节点状态并提供衍生服务

典型应用
MySQL主库(写操作)与从库(读操作)。


7. 中间件(Middleware)

定义
为异构系统提供标准化通信能力的桥梁软件,位于应用与底层资源(数据库/网络)之间。

核心价值

  • 解耦系统组件
  • 标准化交互协议

生活类比
餐饮集团中央采购部门统一对接供应商与门店。

相关文章:

  • vue的created和mounted区别
  • word嵌入图片显示不全-error记
  • Linux下制作Nginx绿色免安装包
  • 介绍一种直流过压保护电路
  • 中和农信创新引领“三农“金融服务新模式
  • vue实现气泡词云图
  • Elasticsearch增删改查语句
  • freeCAD 学习 step1
  • 金属工具制造企业如何做项目管理?数字化系统全面提升交付效率
  • vue的这两个特性:数据驱动视图 与 双向数据绑定的区别
  • 日志收集工具-logstash
  • Gartner企业技术参考架构学习心得
  • GPU架构对大模型推理部署到底有什么影响?
  • 86壳温湿度传感器:高温下工业生产的安全防线
  • 【C#】C++的回调函数和C#的事件委托在某些方面有相似之处
  • 土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测技术应用
  • spearman相关性 - 斯皮尔曼秩相关系数
  • 黑马python(二)
  • 题单:归并排序
  • Alerting中配置多个OpsGenie时,如何匹配同一个条件匹配多个opsgenie的contact points
  • wordpress相关文章tag/洛阳seo博客
  • 迅雷下载宝 做网站/百度门店推广
  • 政府网站建设推进会上的讲话/软文代写接单平台
  • 福永自适应网站建/google关键词查询工具
  • 网站建设中企动力/网站推广的目的
  • 专门做创意桌椅的网站/推广方案经典范文