分布式系统功能设计-Replication | 学习笔记

简介: 快速学习分布式系统功能设计-Replication

开发者学堂课程【分布式文件存储系统技术及实现:常见分布式系统-终版 】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/368/detail/4381


分布式系统功能设计-Replication

内容介绍

一、怎样保证数据不丢失?

二、怎样即使发现磁盘出现错误呢?

 

一、怎样保证数据不丢失?

要保证在机器或者磁盘出现问题的时候快速进行复制,这是里面一个技术含量非常高的点。

 

二、怎样即使发现磁盘出现错误呢?

3.png

1. 及时发现磁盘问题

在计算机里面每隔 15 秒会汇报一次心跳,这样的话在 15 秒之内可以发现坏盘,同时磁盘上存储的数据可以快速进行恢复,比如某块磁盘出错了,然后 15 秒内发现磁盘出错,计算机会问这个磁盘存储了哪些文件的数据 ,然后针对这些文件做快速恢复,它的恢复优先级是相对较高的。

2. 考虑网络流量,快速恢复数据

在复制的过程中还要考虑到网络流量,如果参加的机械数比较少的话网络带宽自然会降低,所以在这过程中会尽量多利用带宽。比如某个机器出错的时候,我们发现这个机器上存储的数据分布在多个机器上,为了快速恢复会找到所有可以发起复制的源,然后往尽量多的目的端把数据补齐。整个集群如果有五千台机器,每台机器利用 30m 带宽的话,这个流量可以达到几百G的级别,所以恢复磁盘的数据只需要十几分钟的时间,这就有效防止多个磁盘在同时发生错误的时候数据丢失的概率。

4.png

3. 比较数据的优先级

在复制过程中可能有不同的优先级,比如一个文件要求写三部分但已经丢了两部分,同一文件要求写三部分,现在有两部分的优先级是不同的,这时候发现有数据接近丢失的情况下会以更高的优先级进行复制。在复制过程中,由于复制流量可能会非常高,不能复制,再造成异常节点。如果不加控制的话,复制的数据将会非常多,可能会把网络占满,这时候如果心跳丢失,会造成整个机器又是一个异常点,要恢复的数据将变得更多造成一个数据风暴,所以在这过程中是要增加流量控制的。

4. 根据配置控制流量

每台机器的千兆网卡配置下,会控制到 30M 流量,这样防止恢复数据造成整个集群不可用。在这样的动画中看到在一台机器宕机的情况下数据在多个机器间相互复制,很快复制到以前拷过数据的过程。

相关文章
|
7月前
|
NoSQL Java Redis
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件(一)
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件
92 0
|
4月前
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
定时任务在企业应用中至关重要,常用于异步数据处理、自动化运维等场景。在单体应用中,利用Java的`java.util.Timer`或Spring的`@Scheduled`即可轻松实现。然而,进入微服务架构后,任务可能因多节点并发执行而重复。Spring Cloud Alibaba为此发布了Scheduling模块,提供轻量级、高可用的分布式定时任务解决方案,支持防重复执行、分片运行等功能,并可通过`spring-cloud-starter-alibaba-schedulerx`快速集成。用户可选择基于阿里云SchedulerX托管服务或采用本地开源方案(如ShedLock)
136 1
|
23天前
|
开发工具 git 开发者
Git 作为最流行的分布式版本控制系统之一,为开发者提供了强大的功能和灵活的操作方式
本文深入介绍了 Git 中的 `git rebase` 操作,涵盖其基本概念、原理、与 `git merge` 的区别、具体操作步骤及应用场景,如保持提交历史整洁、解决合并冲突等,并讨论了其优缺点。强调在公共分支上谨慎使用 rebase,以避免潜在的风险。
34 6
|
6月前
|
消息中间件 NoSQL Java
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
238 0
|
5月前
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
Spring Cloud Alibaba 发布了 Scheduling 任务调度模块 [#3732]提供了一套开源、轻量级、高可用的定时任务解决方案,帮助您快速开发微服务体系下的分布式定时任务。
15029 32
|
4月前
|
监控 Cloud Native 容灾
核心系统转型问题之API网关在云原生分布式核心系统中的功能如何解决
核心系统转型问题之API网关在云原生分布式核心系统中的功能如何解决
|
7月前
|
NoSQL Java Redis
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件(二)
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的分布式锁的功能组件
46 0
|
7月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
298 0
|
5月前
|
缓存 Devops 微服务
微服务01好处,随着代码越多耦合度越多,升级维护困难,微服务技术栈,异步通信技术,缓存技术,DevOps技术,搜索技术,单体架构,分布式架构将业务功能进行拆分,部署时费劲,集连失败如何解决
微服务01好处,随着代码越多耦合度越多,升级维护困难,微服务技术栈,异步通信技术,缓存技术,DevOps技术,搜索技术,单体架构,分布式架构将业务功能进行拆分,部署时费劲,集连失败如何解决
|
6月前
|
供应链 监控 物联网
区块链通过其独特的分布式账本技术和智能合约功能,确保供应链信息的实时更新
**区块链技术革新供应链:分布式账本确保信息实时一致,智能合约自动执行降低错误,物联网追踪增强透明度和信任。通过去中心化、不可篡改的特性,实现交易验证、货物追踪与业务规则自动化,提升供应链效率与安全性。**