【分布式计算】九、容错性 Fault Tolerance

分布式系统应当有一定的容错性,发生故障时仍能运行

一些概念:
可用性Availability:系统是否准备好立即使用
可靠性Reliability:系统连续运行不发生故障
安全性:衡量安全故障的指标,没有严重事件发生
可维护性Maintainability:衡量修复系统的难度

错误fault

一个系统在不能满足其规格时发生错误
容错性:存在故障时,系统仍能提供服务

种类:暂时、间歇性、永久性故障
暂时、间歇性故障不易修复,难以复现

故障模型

1、崩溃故障:服务器停止,但正常工作,直到停止
2、遗漏/省略故障:接收遗漏、发送遗漏;服务器无法响应传入请求;服务器无法接收传入消息;服务器失败服务器的响应位于
3、定时故障:服务器响应超时;服务器的响应位于指定的时间间隔之外
4、响应失败:值故障、状态传递错误;服务器的响应不正确,响应的值错误,服务器偏离了正确的控制流
5、任意故障(拜占庭故障):服务器可能在任意时间产生任意响应

故障掩盖masking

解决方法:冗余

信息冗余

循环冗余检查(CRC),纠错位
时间冗余
重试,直到成功完成
物理冗余
重复组件(SW/HW):RAID

流程复制Process Replication
通过复制来屏蔽进程故障。

将流程组织成组,发送给一个组的消息将传递给所有成员。
我们需要创建多少个副本?

如果一个系统有k个故障进程,即使它也能存活和工作,那么它就是k个容错的
崩溃故障: k+1副本
拜占庭失败: 2k+1副本

分布式协议算法

为什么我们需要达成协议?◦

领导,提交,同步问题
要求:

所有无故障的过程在有限的步骤中达成一致共识,无论这个一致是否好。
拜占庭一般问题:假设:进程不可靠;通道可靠;如果通道不可靠
拜占庭问题
A,B两方为了保证可靠性,导致无休止地握手
怎么解决

可靠RPC

可能发生的错误

1、客户端无法找到服务器

向客户机返回错误报告,
客户端收到错误通知后可以采用指数退避算法重试,直至超时;或者连接备用服务器
2、客户端请求丢失
重传请求
3、服务器响应丢失
没有简单的解决方案,因为它可能很难区分这种情况与服务器的崩溃。
如果请求是幂等的,我们可以尝试重新发送它们。
4、服务器崩溃
症状:发送多次无回应
至少一次语义(At-least-once-semantics):服务器保证无论如何,它都将至少执行一次操作

要实现至少一次语义,客户端可以不断重发请求,直到从服务器接收到响应或确认。服务器可能需要处理幂等操作,以处理重复的请求。
在金融交易中,至关重要的是资金转账至少执行一次,即使可能导致重复的转账
最多一次语义:服务器保证它最多只执行一次操作
要实现至多一次语义,客户端和服务器可以使用唯一的请求标识符或序列号来识别和丢弃重复的请求。服务器可以维护已执行操作的记录以防止重复执行
在分布式文件系统中,您可能希望确保文件至多被删除一次,以避免数据丢失
5、客户端崩溃
服务器端的孤立计算,免费保留一些资源。服务器或客户端(重新启动后)应该处理孤立文件

恢复recovery

1、前向恢复forward:找到一个系统可以继续运行到新状态(恢复到明天)

先会退止上一个恢复点,在借助log(记录了request)再追赶到新进入的request
2、回滚恢复backward:将系统带回以前的无错误状态;我们需要提前建立恢复点;我们需要让流程合作来确定恢复的一致状态。
在这里插入图片描述
recovery line是两个合适的状态相同的checkpoint 相连
级联回滚:如果检查点是在“错误”的时刻完成的,则恢复线可能位于系统启动时。事务中的所有操作被撤销,数据库回到事务开始之前的状态,就好像事务从未执行过一样

独立的检查点:每个进程都独立地接受检查点,并存在级联回滚到系统启动的风险
协调检查点:每个进程在一个全局协调操作之后都接受一个检查点。
简单解决方案(两阶段阻塞)
协调器多播检查点请求消息
 当参与者收到这样的消息时,它会执行检查点,停止发送(应用程序)消息,并报告它已经执行了检查点
 当所有检查点都在协调器上得到确认时,后者会广播一条检查点完成消息,以允许所有进程继续进行

分布式消息队列

没有消息遗漏
副本如何部署:副本和主数据不能放在一起
snapshot:如何定义checkpoint
logs存放:不能在系统上,在外部;logs不能与实际存储放一起;需要logs的副本吗
同一物理机上多个逻辑分区集群

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

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

相关文章

RBF神经网络案例——客户流失率预测

目录 背景介绍 1、径向基神经网络结构 2、符号说明 3、计算网络输出 4、计算能量函数 网络学习步骤 步骤1、先将能量函数E写成各参数的复合函数结构 步骤2、求E关于各参数的偏导 步骤3、求各参数的调整量 步骤4、计算各参数的调整量 5、按照步骤1-步骤4编写RBF神经网络…

【广州华锐互动】智轨列车AR互动教学系统

智轨列车,也被称为路面电车或拖电车,是一种公共交通工具,它在城市的街头巷尾提供了一种有效、环保的出行方式。智轨列车的概念已经存在了很长时间,但是随着科技的发展,我们现在可以更好地理解和欣赏它。通过使用增强现…

【设计模式】七、适配器模式

文章目录 现实生活中的适配器例子基本介绍工作原理举例:类适配器模式类适配器模式介绍类适配器模式应用实例 举例:对象适配器模式基本思路对象适配器模式应用实例 举例:接口适配器模式接口适配器模式应用实例适配器模式在 SpringMVC 框架应用…

并查集路径压缩

我们来看看如果要是100个数,往20个数的集合合并如何 那么我们应该,把数据量小的集合往数据量大的合并 解决另一种极端场景的路径压缩

ChatGPT快速入门

ChatGPT快速入门 一、什么是ChatGPT二、ChatGPT底层逻辑2.1 实现原理2.2 IO流程 三、ChatGPT应用场景3.1 知心好友3.2 文案助理3.3 创意助理3.4 角色扮演 一、什么是ChatGPT ChatGPT指的是基于GPT(Generative Pre-trained Transformer)模型的对话生成系…

设计模式03———包装器模式 c#

首先我们打开一个项目 在这个初始界面我们需要做一些准备工作 创建基础通用包 创建一个Plane 重置后 缩放100倍 加一个颜色 (个人喜好)调节渐变色 可更改同种颜色的色调 (个人喜好) 调节天空盒 准备工作做完后 接下我们做【…

接口测试如何测?最全的接口测试总结,资深测试老鸟整理...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、接口测试的流程…

Windows:Arduino IDE 开发环境配置【保姆级】

参考官网:Arduino - Home Arduino是一款简单易学且功能丰富的开源平台,包含硬件部分(各种型号的Arduino开发板)和软件部分(Arduino IDE)以及广大爱好者和专业人员共同搭建和维护的互联网社区和资源。 Arduino IDE软件…

算法村开篇

大家好我是苏麟从今天开始我将带来算法的一些习题和心得体会等等...... 算法村介绍 我们一步步地学习算法本专栏会以闯关的方式来学习算法 循序渐进地系统的学习算法并掌握大部分面试知识 , 期待和大家一起进步 . 索大祝大家学有所成 , 前程似锦.

车载电子电器架构 —— 国产基础软件生态简介

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

vue3 新特性(defineOptions defineModel)

Vue3.3 新特性-defineOptions 背景说明&#xff1a; 有 <script setup> 之前&#xff0c;如果要定义 props, emits 可以轻而易举地添加一个与 setup 平级的属性。 但是用了 <script setup> 后&#xff0c;就没法这么干了 setup 属性已经没有了&#xff0c;自然无法…

一文深入理解高并发服务器性能优化

我们现在已经搞定了 C10K并发连接问题 &#xff0c;升级一下&#xff0c;如何支持千万级的并发连接&#xff1f;你可能说&#xff0c;这不可能。你说错了&#xff0c;现在的系统可以支持千万级的并发连接&#xff0c;只不过所使用的那些激进的技术&#xff0c;并不为人所熟悉。…

Sui账户抽象消除用户使用障碍,让大规模用户使用区块链成为可能

Sui通过其本机语言和两个特定功能实现了账户抽象&#xff0c;使账户管理中更加细节化的过程自动化。无论是zkLogin还是赞助交易&#xff0c;都简化了用户的使用过程&#xff0c;而Sui Move的基本结构则使开发人员能够提供丝滑的体验。 最近&#xff0c;随着区块链寻求扩大其用…

基于Eigen的位姿转换

位姿中姿态的表示形式有很多种&#xff0c;比如&#xff1a;旋转矩阵、四元数、欧拉角、旋转向量等等。这里基于Eigen实现四种数学形式的相互转换功能。本文利用Eigen实现上述四种形式的相互转换。我这里给出一个SE3&#xff08;4*4&#xff09;(先平移、再旋转)的构建方法&…

有关范数的学习笔记

向量的【范数】&#xff1a;模长的推广&#xff0c;柯西不等式_哔哩哔哩_bilibili 模长 范数 这里UP主给了说明 点赞 范数理解&#xff08;0范数&#xff0c;1范数&#xff0c;2范数&#xff09;_一阶范数-CSDN博客 出租车/曼哈顿范数 det()行列式 正定矩阵&#xff08;Posit…

高校教务系统登录页面JS分析——皖西学院

高校教务系统密码加密逻辑及JS逆向 本文将介绍皖西学院教务系统的密码加密逻辑以及使用JavaScript进行逆向分析的过程。通过本文&#xff0c;你将了解到密码加密的基本概念、常用加密算法以及如何通过逆向分析来破解密码。 本文仅供交流学习&#xff0c;勿用于非法用途。 一、密…

软件工程与计算总结(十三)详细设计中的模块化与信息隐藏

一.模块化与信息隐藏思想 1.设计质量 好的设计要着重满足以下3方面&#xff1a;可管理性、灵活性、可理解性好的设计需要侧重于间接性和可观察性——简洁性使得系统模块易于管理&#xff08;理解和分解&#xff09;、开发&#xff08;修改与调试&#xff09;和复用。实践者都…

集成学习的小九九

集成学习&#xff08;Ensemble Learning&#xff09;是一种机器学习的方法&#xff0c;通过结合多个基本模型的预测结果来进行决策或预测。集成学习的目标是通过组合多个模型的优势&#xff0c;并弥补单个模型的不足&#xff0c;从而提高整体性能。 集成学习的主要策略 在集成…

如果不封车,坚持冬天骑行应该注意些什么?

亲爱的骑行爱好者们&#xff0c;你们好&#xff01;随着秋天的脚步渐行渐远&#xff0c;冬天也不远了。对于热爱骑行的你们来说&#xff0c;秋天的骑行是一种享受&#xff0c;而冬天的骑行则是一种挑战。那么&#xff0c;如果你打算在秋天骑行不封车&#xff0c;坚持过冬天&…

elementUI el-table+树形结构子节点选中后没有打勾?(element版本问题 已解决)

问题 1.不勾选父级CB111&#xff0c;直接去勾选子级&#xff08;ST2001…&#xff09;&#xff0c;子级选中后没有打勾显示 排查 一直以为是这个树形结构和表格不兼容产生的问题&#xff0c;到后来看官方demo都是可以勾选的&#xff0c;最后排查到了版本问题&#xff0c; 项…