高级分布式系统-第6讲 分布式系统的容错性--故障/错误/失效/异常
分布式系统容错性的概念
分布式系统的容错性: 当发生故障时, 分布式系统应当在进行恢复的同时继续以可接受的方式进行操作, 并且可以从部分失效中自动恢复, 且不会严重影响整体性能。
具体包括以下4个方面的内容:
可用性( availability) : 系统可以正确操作, 根据用户的行为来执行预定功能。
可靠性( reliability) : 系统可以无故障地持续运行。
安全性( safety) : 系统在偶然出现故障时, 能正确操作、 输出而不会造成任何灾害。 也称故障-安全性或者故障导向安全性。
可维护性( maintainability) : 发生故障的系统被恢复的难易程度。
分布式系统容错性-----故障/错误/失效/异常
故障、 错误和失效是容错系统中三个重要的概念, 它们之间的关系如下图所示:

故障( Fault) : 引起错误的直接原因( 异常条件) 。
错误( Error) : 由故障引起的子系统( 组件) 的不正确的内部状态。
失效( Failure) : 组件( 子系统) 在特定时刻的实际行为与预期行为之间产生了不一致的结果。
异常( Abnormity) : 错误与正常之间的一种预期外状态或者行为
故障的分类

错误的几个阶段:
激活错误: 一旦错误被计算访问或者影响了访问的流程( 如干扰) , 就激活了错误。
检测发现错误: 当计算访问错误后, 在值域或时域偏离的状态通过检测被发现。
如一个二进制数据的破坏, 可通过简单的奇偶校验检测发现。
消除错误: 用一个在值域和时域无偏离的新值覆盖了错误。
没有被激活、 检测发现或消除的错误称为潜伏错误( latent error) , 可能产生严重后果。
错误传播: 内部错误被激活并且已扩散到该组件( 子系统) 之外, 引发了其他的错误。
失效的严重性分类

失效的影响轻微, 其代价与系统的正常应用的损失在同一个数量级,这类失效称为良性失效。
失效可能导致灾难性后果, 其代价比系统正常应用损失高出几个数量级, 这类失效称为恶性失效( 或者危险失效) 。
失效是良性的还是恶性的, 完全取决于应用的特性。
可能发生恶性失效的应用称为安全关键( safety critical) 应用。
相关文章:
高级分布式系统-第6讲 分布式系统的容错性--故障/错误/失效/异常
分布式系统容错性的概念 分布式系统的容错性: 当发生故障时, 分布式系统应当在进行恢复的同时继续以可接受的方式进行操作, 并且可以从部分失效中自动恢复, 且不会严重影响整体性能。 具体包括以下4个方面的内容: 可…...
网络多线程开发小项目--QQ登陆聊天功能(服务端推送新闻、离线留言和文件)
9.1.5、QQ登陆聊天功能(服务端推送新闻、离线留言和文件) 9.1.5.1、服务端推送新闻 1、需求分析 2、思路分析 3、代码实现 QQServer: 1)cn.com.agree.qqserver.service.SendNewsToAllClient package cn.com.agree.qqserver.s…...
Jtti:有哪些方法可以提升Tomcat的性能?
提升 Tomcat 性能是确保 Web 应用程序快速响应并能够处理高并发请求的关键任务。以下是一些提升 Tomcat 性能的常见方法: 1. 调整JVM参数: a. 内存分配: 增加 JVM 的堆内存(Heap Memory)以提高应用程序的内存容量。使用 -Xmx 和 -Xms 参数设置…...
LeetCode 2085. 统计出现过一次的公共字符串
目录 一、题目 1、题目描述 2、接口描述 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 C代码 Python3代码 一、题目 1、题目描述 给你两个字符串数组 words1 和 words2 ,请你返回在两个字符串数组中 都恰好出现一次 的字符串的数目。 2…...
130基于MATLAB并结合IBD算法的盲迭代反卷积法进行图像复原
基于MATLAB并结合IBD算法的盲迭代反卷积法进行图像复原 ,输出复原前后图像,PSF频谱结果。程序已调通,可直接运行。 130 matlab盲迭代反卷积IBD (xiaohongshu.com)...
Flying HTML生成PDF添加水印
HTML转PDF并添加水印 <!-- 用于生成PDF --> <dependency><groupId>org.xhtmlrenderer</groupId><artifactId>flying-saucer-pdf</artifactId><version>9.1.20</version> </dependency>import java.io.File; import jav…...
MySQL 8.0 InnoDB Tablespaces之Temporary Tablespaces(临时表空间)
文章目录 MySQL 8.0 InnoDB Tablespaces之Temporary Tablespaces(临时表空间)会话临时表空间会话临时表空间的磁盘分配和回收会话临时表空间的创建创建临时表和查看临时表信息会话临时表空间相关的设置参数innodb_temp_tablespaces_dir 全局临时表空间查…...
轴承滚珠故障的理论推导与计算(修订中...)
1.缘起 轴承故障故障位置在高频,如果不即时处理,恶化后,滚珠会有单颗故障迅速恶化到多颗,如果此时电机承载较大负载,轴承的恶化,会牵连到相关的动力轴。是一个不可不进行监测的项目。 2.频谱特征 轴承的…...
NVMe系统内存结构 - PRP与PRP List
NVMe系统内存结构 - PRP与PRP List 1 为什么需要PRP2 PRP3 PRP List4 PRP寻址算法4.1 仅PRP1指向数据4.2 PRP1指向数据,PRP2指向数据4.3 PRP1指向数据,PRP2指向PRP List 本文属于《 NVMe协议基础系列教程》之一,欢迎查看其它文章。 1 为什么…...
系列二、Spring Security中的核心类
一、Spring Security中的核心类 1.1、自动配置类 UserDetailsServiceAutoConfiguration 1.2、密码加密器 1.2.1、概述 Spring Security 提供了多种密码加密方案,官方推荐使用 BCryptPasswordEncoder,BCryptPasswordEncoder 使用 BCrypt 强哈希函数&a…...
基于多反应堆的高并发服务器【C/C++/Reactor】(中)HttpRequest 提取请求行、解析请求行和优化 以及解析请求头并存储
### 知识点1:读取网络数据 客户端发送给服务器的通信数据通过封装的bufferSocketRead函数读取读取的数据存储在struct Buffer结构体实例中,可将该实例作为参数传递给解析函数 回顾Buffer.c中的bufferSocketRead函数 // 写内存 2.接收套接字数据 int b…...
数据结构-测试1
一、判断题 1.队列中允许插入的一端叫队头,允许删除的一端叫队尾(F) 队列中允许删除的一端叫队头(front),允许插入的一端叫队尾(rear) 2. 完全二叉树中,若一个结点没有左孩子&#…...
【设计模式】01-前言
23 Design Patterns implemented by C. 从本文开始,一系列的文章将揭开设计模式的神秘面纱。本篇博文是参考了《设计模式-可复用面向对象软件的基础》这本书,由于该书的引言 写的太好了,所以本文基本是对原书的摘抄。 0.前言 评估一个面向对…...
SpringBoot源码分析
一:简介 由Pivotal团队提供的全新框架其设计目的是用来简化新Spring应用的初始搭建以及开发过程使用了特定的方式来进行配置快速应用开发领域 二:运行原理以及特点 运行原理: SpringBoot为我们做的自动配置,确实方便快捷&#…...
约数个数和约数之和算法总结
知识概览 约数个数 基于算数基本定理,假设N分解质因数的结果为 可得对于N的任何一个约数d,有 因为N的每一个约数和~的一种选法是一一对应的,根据乘法原理可得, 一个数的约数个数为 约数之和 一个数的约数之和公式为 多项式乘积的…...
数据结构-怀化学院期末题(322)
图的深度优先搜索 题目描述: 图的深度优先搜索类似于树的先根遍历,是树的先根遍历的推广。即从某个结点开始,先访问该结点,然后深度访问该结点的第一棵子树,依次为第二顶子树。如此进行下去,直到所有的结点…...
小手也能用的高性能鼠标,自定义空间还挺高,雷柏VT9Pro mini上手
今年搭载PAW3395传感器的电竞鼠标很受欢迎,雷柏就出了不少型号,满足各种喜好的玩家选择,像是近期新出的搭载3395高定版的VT9Pro和VT9Pro mini,就在轻量化的基础上,满足了各种手型的玩家的使用需要,而且价格…...
CDN加速原理详解
一、CDN加速是什么意思 CDN是Content Delivery Network)英文首字母的缩写,中文翻译为内容分发网络,由于CDN是为加快网络访问速度而被优化的网络覆盖层,因此被形象地称为”网络加速器”,即CDN加速。CDN加速是通过将网站…...
sqlachemy orm create or delete table
sqlacehmy one to one ------detial to descript 关于uselist的使用。如果你使用orm直接创建表关系,实际上在数据库中是可以创建成多对多的关系,如果加上uselistFalse 你会发现你的orm只能查询出来一个,如果不要这个参数orm查询的就是多个,一对多的…...
科普小米手机、华为手机、红米手机、oppo手机、vivo手机、荣耀手机、一加手机、realme手机如何设置充电提示音
用空空鱼就可以设置,上面还有很多提示音素材还可以设置满电和低电提醒...
基于CircuitPython与NeoPixel打造可编程LED亚克力灯牌:从硬件选型到代码实现
1. 项目概述:打造你的专属可编程光之铭牌在创客和电子爱好者的世界里,总有一些项目能完美地融合软件编程的灵活性与硬件制作的实体成就感。今天要分享的,就是这样一个让我爱不释手的小玩意儿:一个基于CircuitPython和NeoPixel的可…...
PAC技术演进与核心趋势:从多域控制到边缘智能的工业自动化平台
1. 项目概述:为什么今天还要聊PAC?如果你在工业自动化、楼宇控制或者任何涉及逻辑控制的领域工作,那么“PAC”这个词对你来说应该不陌生。但很多时候,它就像一个熟悉的陌生人——大家好像都知道它,但真要细说它现在发展…...
LoRA模型合并实战指南:多技能融合与vLLM部署
1. 项目概述:LoRA模型合并的“瑞士军刀”最近在折腾大语言模型微调的朋友,估计对LoRA(Low-Rank Adaptation)这个词都不陌生。它就像给预训练好的大模型“打补丁”,用极小的参数量(通常只有原模型的0.1%到1%…...
Arm Neoverse CMN-700架构与寄存器配置详解
1. Arm Neoverse CMN-700架构概览在现代多核处理器设计中,如何高效实现缓存一致性一直是核心挑战。Arm Neoverse CMN-700(Coherent Mesh Network)作为第二代一致性网格网络IP,采用分布式架构解决了从16核到256核规模的数据一致性问…...
AI应用开发实战:从RAG系统到多模型API调用的开源项目解析
1. 项目概述:一个AI项目的开源实践最近在GitHub上看到一个名为“hferello/ai”的项目,这个标题非常简洁,甚至可以说有些“神秘”。乍一看,它可能是一个关于人工智能的通用仓库,但点进去之后,你会发现它远不…...
Figma设计稿自动化生成Markdown文档:从API调用到CI/CD集成
1. 项目概述:从设计稿到结构化文档的自动化桥梁如果你是一名前端开发者、产品经理或是UI设计师,一定经历过这样的场景:Figma里精心打磨的设计稿终于定稿,接下来需要将其转化为开发文档、产品需求文档或者设计规范文档。这个过程&a…...
GoLang简便模板缓存实现
在GoLang开发中,当项目运行时,go的html/template默认行为是每次请求都得重新解析模板文件,当高并发,频繁的磁盘读取会造成非常大的负担,成为明显瓶颈,所以,为了避免重复解析模板文件,…...
基于电子纸与ESP32的物联网桌面日历制作指南
1. 项目概述:打造一个永不掉电的桌面物联网日历如果你和我一样,喜欢在桌面上放点既实用又有科技感的小玩意儿,那么这个基于电子纸的物联网日历绝对能让你眼前一亮。它不像普通屏幕那样需要一直插着电,显示完日历后,你甚…...
从LED驱动到Arduino编程:电子入门实战指南与避坑技巧
1. 从一颗LED到智能世界:我的电子入门实践心路很多朋友第一次接触电子制作,可能都是从让一颗LED亮起来开始的。我至今还记得十几年前,第一次用一节5号电池直接点亮一颗红色发光二极管时的那种兴奋。但很快,问题就来了:…...
从六度空间到毫秒响应:HNSW图索引如何重塑向量检索
1. 从六度分隔到高维空间:HNSW的思想起源 1967年,社会心理学家斯坦利米尔格拉姆通过著名的"小世界实验"提出了六度分隔理论——地球上任意两个人之间平均只需要5-6个中间人就能建立联系。这个看似简单的社会学发现,却在半个世纪后成…...
