拜占庭容错算法:针对存在恶意节点(拜占庭节点)的分布式系统设计的容错算法。这类算法能够在一定比例的恶意节点存在的情况下,保证系统的正常运行和数据一致性。例如在区块链系统中,由于网络的开放性,可能存在恶意节点试图篡改数据,拜占庭容错算法可以确保区块链的共识机制在这种情况下依然有效。降级与熔断 服务降级:当...
断言(Assert)是代码中最常见的一种容错设计,很多源码库都能看到断言的身影,比如STM32外设库: voidGPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct){/* Check the parameters */assert_param(IS_GPIO_ALL_PERIPH(GPIOx));assert_param(IS_GPIO_MODE(GPI...
容错模式应用 在了解了这么多容错策略后,我们需要做的是,如何把这些容错策略落地实现到我们的系统里面去,根据不同的业务场景制定和组合不同的策略来保证系统的可用性,实践过后也就形成了一些通用的容错设计模式,比如说断路器模式、重试模式、舱壁隔离模式 等。 断路器模式 在分布式环境下,调用某个服务发生错误时,为了...
3、容错容灾体系的构成:容错容灾是能力建设而不是资源配置,是一个建设过程 为什么容灾容错是个体系,我理解上认为容灾容错是一种能力建设,而不是一种资源配置。容灾容错的能力,实际是由日常的事情发生并逐渐演化过来的。我们在日常中不一定能预见到一个灾难或者一个重大故障的发生。刚开始可能就是一个小的事件和苗头...
容错性其实就是可用性之中细分的一个模块,是专门针对出错的研究。具体内容大家可以去看:唐纳德诺曼《设计心理学》中关于错误的分类及错误设计原则;李乐山《人机界面设计》中Reason认为存在8种基本出错类型 ;尼尔森《可用性工程》中错误信息四原则以及《十大可用性原则》中第七条和第九条(分别是防错原则和容错原则)。
容错性设计 1限制用户某些交互操作 安卓的这种数据线做成了梯形,避免了存在多种插入方式的错误的可能性。这里就显示了用户的交互操作,只能用这一种方式才能正确插入。置灰是界面上限制某些操作的好方式。比如大家很熟悉的axure,我们在使用文本框的时候,它的样式是不能够进行设置的,在界面上采取的方式就是将这些...
软件容错设计方法 错误检测。 输入验证:对用户输入、外部接口输入等进行严格的验证,确保输入数据的合法性、完整性和准确性。例如,在用户注册页面,验证用户名是否符合规定长度、是否包含非法字符,密码是否满足复杂度要求等。 数据校验:在数据处理的各个环节,对数据进行校验,如在数据读取、存储、传输后,检查数据的一致性...
1)恢复块设计 程序的执行过程可以看成是由一系列操作构成的,这些操作又可由更小的操作构成。恢复块设计就是选择一组操作作为容错设计单元,从而把普通的程序块变成恢复块。被选择用来构造恢复块的程序块可以是模块、过程、子程序和程序段等。一个恢复块包含有若干个功能相同、设计差异的程序块文本,每一时刻有一个文...
在内存设计和生产过程中,怎么处理缺陷呢?其实还是提供冗余。下面我们就从封测阶段和使用阶段分别来讲一下各自用到的技术。 封测阶段 和Flash一样,DRAM内存颗粒在制作的时候也拥有多余的行,和相关的Fuse线路: 和大多数半导体设备一样,内存颗粒的可靠性我们可以通过失效率来衡量。如果我们以时间为x轴,y轴为失效率。失...
容错性设计的最终目的当然是让产品更可用、更易用,为了更好用容错性设计的目的在于两点,降低出错概率和提升纠错效率。 一是提醒,明确告诉用户现在的操作有可能是错误操作,并指出错误在哪,即出错的原因。当然描述错误的文案需要满足产品使用人群的特点,根据目标用户进行设计。