数据库信息速递, RAFT 原生系统是未来数据流式系统的未来

news2024/11/16 5:58:58

e025bb2f01befd3065cb0bcff4970c65.png

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共1100人左右 1 + 2 + 3)新人会进入3群

共识是保证一致的分布式系统的基础。为了在不可避免的故障中保证系统的可用性,系统需要一种确保集群中每个节点保持一致的方式,以便在发生故障时无缝地将工作转移到其他节点。Paxos、Raft和View Stamped Replication(VSR)等共识协议通过提供领导者选举、原子配置更改、同步等过程的逻辑,为分布式系统提供了弹性。

797ee252b1bea3b8775f184e3236b408.png

正如所有设计元素一样,分布式共识的不同方法提供了不同的权衡。Paxos是最古老的共识协议,并被许多系统使用,如Google Cloud Spanner、Apache Cassandra、Amazon DynamoDB和Neo4j。Paxos通过三阶段的无领导者、多数异步提交协议实现共识。虽然Paxos在推动正确性方面很有效,但众所周知,它难以理解、实现和推理。这部分是因为它隐藏了许多达成共识的挑战(例如领导者选举、重配置),使得将其拆分成子问题变得困难。

可靠、复制、冗余和容错的Raft(reliable, replicated, redundant, and fault-tolerant)可以被看作是Paxos的一种演变,注重可理解性。Raft可以达到与Paxos相同的正确性,但在实际世界中更容易理解和实现,因此通常可以提供更高的可靠性保证。例如,Raft使用稳定的领导形式,简化了复制日志管理,并且它的领导者选举过程更高效。

同时,由于Raft将共识问题的不同逻辑组件进行了拆分,例如通过在复制之前将领导者选举作为一个独立的步骤,它是一个灵活的协议,适用于复杂的现代分布式系统。这些系统需要在保持正确性和性能的同时,扩展到PB级的吞吐量,并且对于新的工程师来说更容易理解和开发。

因此,Raft协议已经迅速被广泛应用于当今的分布式和云原生系统,例如MongoDB、CockroachDB、TiDB和Redpanda,以实现更高的性能和事务的效率。

Redpanda是如何实现Raft的

当Redpanda创始人Alex Gallego确定世界需要一个新的流式数据平台来支持那些可能导致Apache Kafka故障的GBps+工作负载时,他决定从头开始重写Kafka。

Redpanda成为现在的这款产品的需求包括:1)简单且轻量化,以降低在大规模可靠地运行Kafka集群时的复杂性和低效性;2)充分利用现代硬件的性能,以提供大型工作负载的低延迟;3)即使在非常大的吞吐量情况下,也要保证数据的安全性。

实现Raft为这三个需求提供了坚实的基础:1)简单性:每个Redpanda分区都是一个Raft组,因此平台中的所有内容都是基于Raft进行推理,包括元数据管理和分区复制。与Kafka的复杂性形成对比,Kafka的数据复制由ISR(in-sync replicas)处理,元数据管理由ZooKeeper(或KRaft)处理,因此存在两个必须相互推理的系统。2)性能:Redpanda的Raft实现可以容忍少数副本的干扰,只要领导者和大多数副本是稳定的。在一部分副本延迟响应时,领导者无需等待它们的响应就可以继续进展,从而减少对延迟的影响。因此,Redpanda具有更好的容错性,并能在大规模上提供可预测的性能。3)可靠性:当Redpanda接收事件时,它们被写入一个主题分区,并追加到磁盘上的日志文件中。然后,每个主题分区形成一个Raft共识组,由一个领导者和若干个追随者组成,这取决于主题的复制因子。在给定2ƒ+1个节点的情况下,Redpanda的Raft组可以容忍ƒ个故障。例如,在一个拥有五个节点和复制因子为五的主题的集群中,可以发生两个节点的故障而主题仍保持正常运行。Redpanda利用Raft联合共识协议来实现一致性,即使在重新配置期间也是如此。

此外,Redpanda还通过一些关键方式扩展了核心的Raft功能,以实现现代云原生解决方案所需的可扩展性、可靠性和速度。它对Raft进行的创新包括对选举过程、心跳生成以及关键的支持Apache Kafka ACKS的改变。这些创新确保了在所有场景下实现最佳性能,这正是Redpanda能够更快地比Kafka提供数据安全性的原因。实际上,Jepsen测试已经验证了Redpanda是一个安全的系统,没有已知的一致性问题,并且具有可靠的基于Raft的共识层。

KRaft呢?

尽管Redpanda采取了一种原生的Raft方法,但传统的流式数据平台在采用现代共识方法方面一直拖后腿。Kafka本身是一个复制的分布式日志,但它在历史上一直依赖于另一个复制的分布式日志——Apache ZooKeeper来进行元数据管理和控制器选举。这带来了一些问题:

1)管理多个系统增加了管理负担;2)由于元数据处理和双重缓存,可扩展性有限;3)集群可能变得非常臃肿和资源密集,实际上,看到ZooKeeper和Kafka节点数量相等的集群并不罕见。

这些限制并没有被Apache Kafka的贡献者和维护人员所忽视。他们正在将ZooKeeper替换为自我管理的元数据仲裁系统:Kafka Raft(KRaft)。这种基于事件的Raft变体减少了Kafka元数据管理的管理挑战,并且证明了Kafka生态系统正在朝着现代共识和可靠性方法的方向发展。

不幸的是,KRaft并没有解决在Kafka集群中同时存在两个不同的共识系统的问题。在新的KRaft范式中,KRaft分区处理元数据和集群管理,但复制由代理处理,因此仍然存在这两个不同的平台和由此产生的效率低下的复杂性。

例如,由于Redpanda绕过了Kafka的页缓存和Java虚拟机(JVM)依赖,它可以将硬件级别的知识嵌入到其Raft实现中。通常,每次在Raft中进行写操作时,都需要刷新以确保写入到磁盘的持久性。在Redpanda对Raft的乐观方法中,较小的间断性刷新被放弃,而在调用结束时进行更大的刷新。虽然这会增加每个调用的延迟,但它降低了整体系统延迟并增加了总体吞吐量,因为它减少了刷新操作的总数。

虽然在分布式系统中有很多有效的方法来确保一致性和安全性(例如,区块链通过工作证明和权益证明协议做得非常好),但Raft是一种经过验证的方法,足够灵活,可以进行增强,就像Redpanda一样,以适应新的挑战。随着我们进入一个以数据驱动的可能性的新世界,部分受到人工智能和机器学习用例的推动,将来掌握在能够利用实时数据流的开发人员手中。

基于Raft的系统,结合C++和按核心的线程架构等性能工程化元素,正在推动关键应用程序的数据流未来。

Doug Flora是Redpanda Data的产品营销负责人。

f479813268f17740348d85d5c9dbfbdc.png

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

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

相关文章

功能测试之兼容性测试点和注意项

一:兼容性测试的概念:就是验证开发出来的程序在特定的运行环境中与特定的软件、硬件或数据相组合是否能正常运行、有无异常的测试过程。 二:兼容性测试的分类: (1)浏览器兼容性测试 指的是在浏览器上检查…

第四课:逻辑控制

1.分支语句 (1)if语句 练习 1.判断一个数字是奇数还是偶数 public static void main(String[] args) {int a 10;if (a % 2 1){System.out.println("a是奇数");}else{System.out.println("a是偶数");}} 2.判断一个年份是否为闰年…

Django学习记录:初步认识django以及实现了简单的网页登录页面的前后端开发

Django学习记录:初步认识django以及实现了简单的网页登录页面的前后端开发 1、可以先删去template文件夹,并在setting里面删掉这一行 2、在pycharm中创建app: 3、启动app:编写URL与视图函数关系【urls.py】 ​ 编写视图函数【vi…

HCIA-datacom数通题库和录播视频资料

HCIA-Datacom,是华为数通认证的初级考试,培训与认证具备数通基础通用知识和技能水平的工程师,只是入门了解数通的一些基础通用知识,适用于小白了解和学习数通知识点起点。 个人建议还是有必要考的,如果在企业考试考试…

Java版本spring cloud 工程项目管理系统源码

​ ​工程项目管理系统是指从事工程项目管理的企业(以下简称工程项目管理企业)受业主委托,按照合同约定,代表业主对工程项目的组织实施进行全过程或若干阶段的管理和服务。 如今建筑行业竞争激烈,内卷严重&#xff0c…

助力保险行业数字化创新,麒麟信安参展2023中国财险科技应用高峰论坛

2023年7月27日,由中科软科技股份有限公司主办的“中国财险科技应用高峰论坛”在北京古北水镇成功举办。作为享誉中国保险科技界的盛会,本次活动以“数智保险 创新未来”主题,汇聚全国数百位保险公司主管领导、资深保险行业信息化专家&#xf…

在PHP8中检测数据类型-PHP8知识详解

在PHP 8中,可以使用多种方法来检测数据类型。以下是常用的四种方法:使用 gettype() 函数、使用 is_* 系列函数、使用 get_debug_type() 函数、使用 get_class() 函数。 一、使用 gettype() 函数 gettype() 函数返回给定变量的数据类型。例如&#xff1a…

【Git系列】IDEA集成Git

🐳IDEA集成Git 🧊1. idea配置git🧊2. idea添加暂存区和提交🪟创建文件🪟将整个项目添加到暂存区🪟提交到本地仓库🪟查看控制台,显示提交的信息🪟修改文件,再次…

matlab编程实践14、15

目录 数独 "四独"游戏 解的存在和唯一性 算法 常微分方程 数独 采用蛮力试凑法来解决数独问题。(采用单选数,以及计算机科学技术中的递推回溯法) 以上的数独是图14-2的两个矩阵的和,左侧的矩阵可以由kron和magic函…

软件测试之性能测试实施流程

软件测试之性能测试实施流程: 1.测试需求分析 测试需求分析是整个性能测试的基础,在这一阶段测试负责人要和项目干系人进行沟通,同时手机各种项目资料,尤其要搞清楚用户对待性能测试的核心需求。 测试需求分析阶段的主要任务是确…

小红书2020校招测试开发后端笔试题卷三

//完全背包求组合数 #include <iostream> #include<vector> #include<set> #include<map> #include<algorithm> using namespace std; int value[300]; // vector<int>vis; // vector<int>vis1; map<vector<int>,int>m…

Verilog语法学习——LV3_奇偶校验

LV3_奇偶校验 题目来源于牛客网 [牛客网在线编程_Verilog篇_Verilog快速入门 (nowcoder.com)](https://www.nowcoder.com/exam/oj?page1&tabVerilog篇&topicId301) 题目 题目描述&#xff1a; 现在需要对输入的32位数据进行奇偶校验,根据sel输出校验结果&#xff0…

【GITHUB】FlipIt – Windows的开源翻页时钟

FlipIt 是一款免费开源的翻页时钟应用&#xff0c;专为 Windows 平台设计。该应用灵感来源于备受喜爱的老牌翻页时钟应用 Fliqlo&#xff0c;后者被公认为经典的翻页时钟屏保。然而&#xff0c;由于 Fliqlo 是基于 Flash 技术开发的&#xff0c;随着微软最近正式禁用 Flash&…

《cuda c编程权威指南》03 - cuda小功能汇总

1. 计时 1.1 linux #include <sys/time.h>double cpuSecond() {struct timeval tp;gettimeofday(&tp, NULL);return ((double)tp.tv_sec (double)tp.tv_usec*1e-6); }// 调用 double start cpuSecond(); kernel_name << <grid, block >> > (ar…

防火墙监控工具

防火墙监控是跟踪在高效防火墙性能中起着关键作用的重要防火墙指标&#xff0c;防火墙监控通常应包括&#xff1a; 防火墙日志监控防火墙规则监控防火墙配置监控防火墙警报监控 防火墙监控服务的一个重要方面是它应该是主动的。主动识别内部和外部安全威胁有助于在早期阶段识…

CompletableFuture使用详解(全网看这一篇就行)

CompletableFuture是jdk8的新特性。CompletableFuture实现了CompletionStage接口和Future接口&#xff0c;前者是对后者的一个扩展&#xff0c;增加了异步会点、流式处理、多个Future组合处理的能力&#xff0c;使Java在处理多任务的协同工作时更加顺畅便利。 一、创建异步任务…

element-tree-line el-tree 添加结构线 添加虚线

概览&#xff1a;给element组件添加上虚线&#xff0c;通过使用插件element-tree-line 参考连接&#xff1a; 参考别人的博客 安装插件&#xff1a; # npm npm install element-tree-line -S # yarn yarn add element-tree-line -S main.js全局注册引入插件&#xff1a; imp…

《翻开收藏夹,拾起行动的力量》

文章目录 每日一句正能量前言分享一道收藏的好题分享一个收藏的便捷技巧积灰这么久&#xff0c;这个当时被收藏的东西对现在的你还有用吗&#xff1f;后记 每日一句正能量 很喜欢一个字&#xff0c;淡&#xff0c;平淡的淡&#xff0c;其实很不平淡&#xff0c;蕴含着很多人生哲…

巨人互动|Google海外户Google SEO关键词工具有哪些?

Google SEO是网站优化的重要工具之一&#xff0c;可以通过优化关键词来提升网站在搜索引擎结果页面的排名。而Google SEO关键词工具是帮助网站管理员和营销人员找到最有效关键词的工具。Google SEO关键词工具是一组被广泛使用的在线工具&#xff0c;可以帮助网站管理员和营销人…

初学者预算不多,千元内新手入门吉他推荐!恩雅X0和VEAZEN费森CLR300怎么样?全方面对比评测!

千元内入门吉他少不了VEAZEN费森CLR300单板系列和恩雅X0 HPL合板系列这两款热门系列&#xff0c;最近很多初学者朋友来私信&#xff0c;咨询这两款琴有什么优缺点&#xff0c;哪一款更值得初学者选购&#xff0c;那么今天&#xff0c;就以它们为本期的评测主角&#xff0c;全方…