IT评测·应用市场-qidao123.com技术社区

标题: kafka的个人理解 后端 [打印本页]

作者: 立聪堂德州十三局店    时间: 2025-4-15 07:42
标题: kafka的个人理解 后端
由于本人在项目中的文件上传部门利用了kafka,所以记录一下一些浅显的个人理解
  什么是kafka

kafka是一个分布式流处置处罚平台,被设计用于高吞吐量、相对低延迟的实时数据流处置处罚。
kafka的核心包罗Broker、Topic、Partition、Producer、Consumer、Consumer Group、Offset、ZooKeeper。

为什么要选用kafka

kafka有什么缺点

复杂性高,运维本钱高,不得当低延迟场景,消息重复消费,功能相对单一,储存本钱高。
消息队列应用场景

kafka


RabbitMQ


RocketMQ


什么是Raft、Kraft

Raft是分布式一致性算法,用于在分布式体系中实现数据的强一致性。
Kraft是kafka基于raft实现的新模式,用于管理kafka的元数据。
Raft

raft集群中的节点分为Leader、Follower和Candidate三种脚色
Leader负责处置处罚客户端哀求、Follower负责被动同步数据,Candidate参与推举
Leader推举

推举触发

Follower 在超时时间内未收到 Leader 的心跳消息,会转变为 Candidate,发起推举。
投票哀求

Candidate 向其他节点发送投票哀求(RequestVote RPC)。每个节点在同一任期内只能投一次票。
推举成功

假如 Candidate 获得大多数节点的投票,则成为新的 Leader。新 Leader 向其他节点发送心跳消息,确立自己的领导职位。
推举失败

假如 Candidate 未获得大多数投票,则推举失败,等待下一次推举。
日志复制

客户端哀求

客户端向 Leader 发送哀求。Leader 将哀求作为日志条目追加到本地日志中。
日志复制

Leader 将日志条目发送给所有 Follower。Follower 将日志条目追加到本地日志中,并返回确认。
提交日志

当日志条目被复制到大多数节点后,Leader 将其标记为已提交。Leader 将已提交的日志条目应用到状态机,并通知客户端操作成功。
通知 Follower

Leader 在后续的心跳消息中通知 Follower 已提交的日志条目。Follower 将已提交的日志条目应用到本地状态机。
安全性

推举限制

只有拥有最新日志的节点才能成为 Leader。这避免了数据丢失的问题。
日志匹配:

Leader 和 Follower 的日志必须保持一致。假如 Follower 的日志与 Leader 不一致,Leader 会强制 Follower 复制自己的日志。
任期更新

每个节点都会维护当前任期号,确保不会接受旧任期的消息。
Raft的缺点

性能开销比力大,必要频仍心跳和日志复制;存在日志增长问题,必要定期压缩以减小开销。
Kraft

KRaft(Kafka Raft Metadata Mode)是 Apache Kafka 从 2.8 版本开始引入的一种新模式,用于管理 Kafka 的元数据。它基于 Raft 算法实现,目的是代替 Kafka 对 ZooKeeper 的依赖,简化 Kafka 的架构和运维。
KRaft 的核心特性

元数据管理

KRaft 利用 Raft 算法来管理 Kafka 的元数据(如 Broker 注册、Topic 配置、Partition 分配等)。
Controller 推举

Kafka 集群中的某些 Broker 被选为 Controller,通过 Raft 协议推举 Leader 并同步元数据。
去 ZooKeeper 化

KRaft 模式不再依赖 ZooKeeper,使 Kafka 成为一个完全自包罗的分布式体系。
高可用性

通过 Raft 协议,KRaft 模式可以保证元数据的高可用性和一致性。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4