Raft实现报告(15)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Raft实现报告(15)

Raft实现报告(15)

重制配置的三个问题

问题一

第一个问题是新的服务器可能不会存储任何的日志条目。如果他们以这种状态添加到集群中,他们可能需要很长的时间才能赶上,在此期间可能无法提交新的条目日志。为了避免可用性的差距。Raft在配置更改钱引入了一个额外的阶段,在该阶段中,新服务器作为非投票成员加入集群(leader将日志条目复制给他们,但他们不被纳入范围)。一旦新服务器赶上了集群的其余部分,那么动态更换配置就可继续执行。

第二个问题

leader可能不在新配置中的一部分,在这种情况下,leader在提交新集群日之后下台(返回follower状态)。这意味着有一段时间(当它提交新集群日志时)leader正在管理一个不包括自己的集群;leader转换发生在提交新集群的日志时,因为这是新配置可以独立运行的第一个点(总是可以从新集群中选举leader),在此之前,可能只有来自旧集群配置的服务器可以被选为leader。

第三个问题

第三个问题是删除的服务器(不在新集群配置中的服务器)可能会破坏集群。这些服务器收不到心跳后,因此他们会超时并开始新的选举。然后后他们将发送带有新期号的RequestVoteRPC,这将导致当前领导者恢复为follower的状态,这破坏了系统的稳定性。最终会选出一个新的leader,但是被移除的服务器会再次超时,这个过程就会重复,导致可用性很差。

为了防止这个问题发生,当服务器当前存在leader的时候,他们会忽略RequestVoteRPC。具体来说如果服务器在听取当前leader的最小选举超时时间内收到了RequestVoteRPC,他不会更新其任期的索引,或者是去头片。当然这个行为也不会影响正常的选举流程,每个服务器在开始选举之前至少会等待一个最小选举超时。它有助于变面被移除的服务器造成的中断:如果一个leader能够维持心跳,那么他将不会被代替。也就维持了系统的可用性。


相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
JavaScript 前端开发 开发者
深入理解ArkTS:Harmony OS 应用开发语言 TypeScript 的基础语法和关键特性
深入理解ArkTS:Harmony OS 应用开发语言 TypeScript 的基础语法和关键特性
954 0
|
安全 C语言
C语言循环的使用注意点
在C语言中,合理使用循环对于编写高效、安全的代码至关重要。以下是几点建议:确保循环条件正确以避免无限循环;每次迭代时正确更新循环变量;恰当使用`break`和`continue`控制执行流程;注意嵌套循环中的变量作用域;简化循环体内逻辑;根据需求选择合适的循环类型;注意数据类型以避免溢出;保持良好的缩进和注释习惯;减少重复计算以提升性能;确保循环终止条件明确。遵循这些建议,可以提高代码质量和可维护性。
412 88
|
10月前
|
固态存储 测试技术 图形学
电脑升级有哪些建议?
【10月更文挑战第31天】电脑升级有哪些建议?
428 4
|
11月前
|
数据采集 安全 数据管理
通信行业数据治理:如何实现高效、安全的数据管理?
在未来的发展中,通信行业的企业应加强数据治理意识,提高数据治理能力;同时,积极开展跨行业的合作创新,共同推动行业的繁荣与发展。相信在不久的将来,通信行业将迎来更加美好的明天。
|
数据采集 JSON 前端开发
Python爬虫进阶:使用Scrapy库进行数据提取和处理
在我们的初级教程中,我们介绍了如何使用Scrapy创建和运行一个简单的爬虫。在这篇文章中,我们将深入了解Scrapy的强大功能,学习如何使用Scrapy提取和处理数据。
|
存储 Oracle 关系型数据库
关系型数据库Oracle备份策略
【7月更文挑战第20天】
268 2
|
前端开发 JavaScript 安全
神奇的代码——可随意修改复制页面内容
神奇的代码——可随意修改复制页面内容
661 0
|
移动开发 负载均衡 小程序
代驾app开发丨代驾系统开发玩法详情丨代驾系统开发网页版/H5/小程序及源码部署
**司机/代驾员端**:司机可以通过APP接收订单,查看订单详情、路线和导航,提供现场服务并进行确认。
|
JavaScript
【报错】:Cannot read properties of undefined (reading ‘prototype‘)
【报错】:Cannot read properties of undefined (reading ‘prototype‘)
419 0
|
Java 程序员 应用服务中间件
spring框架核心技术讲解(上)--超详细教程加案例分析
spring框架核心技术讲解(上)--超详细教程加案例分析
396 0