【面试高频 time: 2023-5-18】做分布式文件存储,如何保证分布式存储的高性能与高可用?

news/2024/11/17 15:50:16/

大家可以想到基本就是副本备份、双活、多活这种架构

  • 在系统中通过复制协议将数据同步到多个存储节点,并确
    保多个副本之间的数据⼀致性,当某个存储节点出故障
    时,系统能够⾃动将服务切换到其他的副本

  • 在分布式存储中⾼性能与⾼可⽤是⽭盾的,⽐如要设计⼀
    个分布式存储系统,CAP定理也可以推断出来

    • 对性能的考虑,记录数据时先写⼀个份数据到某个机器
      上并⽴即返回,然后异步发起多个数据备份过程。这种
      设计的性能最好,但存在“容错性”的⻛险,加⼊返回
      后,还没来得及同步给其它节点就宕机了,则数据就丢
      失(异步复制,也存在是写主节点到内存还是落到磁
      盘)
  • 如果同时写多个副本,每个副本写成功以后再返回,则
    ⼜导致性能下降,这个过程取决于最慢的那台机器的性
    能 (同步多写,是同步每个副本节点还是⼀个副本先)

    • 那应该如何选择呢?

    • 根据业务⽽定,如果要求性能更⾼,偶尔出现⽂件
      丢失或访问出错则可以异步复制

    • 要求⽂件系统⼀定要⾼可⽤,则⽤同步多写的策略,牺
      牲⼀定的性能也要保证⾼可⽤数据⼀致性

  • 基于上述的,⼤家还知道有⼀个很类似的消息队列就是
    ⽀持这种操作

    • RocketMQ消息⾼可⽤⾥⾯的,同步双写、异步刷盘,即同时写到两个节点上的内存才返回,然后异步持久化到磁盘⾥⾯

http://www.ppmy.cn/news/73361.html

相关文章

手把手教你怎么搭建自己的ChatGPT和Midjourney绘图(含源码)

AI程序采用NUXT3LARAVEL9开发(目前版本V1.1.7) 授权方式:三个顶级域名两次更换 1.AI智能对话-对接官方和官方反代(markdown输出)PS:采用百度与自用库检测文字 2.AI绘图-根据关键词绘图-增加dreamStudio绘画-增加mid…

Requests的使用例子

Requests库是一个Python HTTP客户端库,用于向Web服务器发送HTTP请求。它提供了简单而直观的API,使得向Web服务器发送HTTP请求变得非常容易。以下是Requests库的一些功能和示例: 1、发送HTTP GET请求 发送HTTP GET请求非常简单,只…

查看linux日志以及处理不能登录mysql的错误

要查看MariaDB的日志文件,可以使用以下命令: 1. 错误日志文件: bash sudo cat /var/log/mariadb/error.log 这将显示MariaDB的错误日志文件的内容。如果在默认位置找不到错误日志文件,您可以尝试查找其他可能的位置&#…

Activiti实战——Springboot整合Activiti

目录 一、Activiti数据库表名说明 二、Spring boot整合activiti 1. 创建springboot项目 2. 引入activiti依赖及项目依赖 3. 配置数据源 (1)创建数据源配置文件 (2)配置文件 4. 配置Acitviti引擎 5. 启动项目 三、Activiti…

DJ5-4 交换局域网(第一节课)

目录 一、局域网概述 1、LAN 的特点和分类 2、常见的网络拓扑结构 二、计算机与局域网的连接 三、局域网体系结构 四、链路层寻址地址 1、MAC 地址分配 2、MAC 地址识别 五、ARP 地址解析协议 1、ARP 地址解析协议 2、ARP:两个主机位于同一个局域网 3、…

Godot引擎 4.0 文档 - 入门介绍 - Godot 关键概念概述¶

本文为Google Translate英译中结果,DrGraph在此基础上加了一些校正。英文原版页面:Overview of Godots key concepts — Godot Engine (stable) documentation in English Godot 关键概念概述 每个游戏引擎都围绕您用来构建应用程序的抽象展开。在 Godo…

AUTOSAR知识点 之 COM (二):ISOLAR-AB的配置

目录 1、概述 2、ISOLAR-AB配置 2.1、ComGeneral 2.2、ComConfig 2.2.1、ComGwMapping 2.2.2、ComIPduGroups 2.2.3、ComIPdus

超越大数据的边界:Apache Flink实战解析【上进小菜猪大数据系列】

上进小菜猪,沈工大软件工程专业,爱好敲代码,持续输出干货。欢迎订阅专栏 Apache Flink是一种快速、可靠、可扩展的开源流处理框架,被广泛应用于大数据领域。本文将介绍Apache Flink的实战运用,包括其核心概念、架构设…