kafka工作原理

本文详细介绍了Kafka的工作原理,包括集群成员关系、控制器的角色、复制机制、请求处理(元数据、生产和消费请求)以及物理存储的细节,如分区分配和文件管理。在物理存储部分,讨论了数据保留策略,如何通过分段来管理和删除数据,以避免大文件操作中的错误。
摘要由CSDN通过智能技术生成

Kafka工作原理

1 集群成员之间的关系

集群中成员之间的信息是通过zk进行维护的

每个broker都有自己的唯一标识

broker启动时通过创建临时节点把自己的ID注册到zk上,然后kafka组件订阅zk中的/brokers/ids路径,当加入或退出集群时,组件会得到通知

如果关闭一个broker,对应的节点会消失,不过这个broker的ID会保留在其他的数据结构中,如果完全关闭一个broker之后用用相同的ID启动一个新的broker,他会立即加入集群,并与旧的broker有着相同的分区和主题

2 控制器

控制器其实就是一个broker,只不过除了具有一般broker的功能之外,还负责分区首领的选举。

集群中第一个启动的broker通过在zk中创建一个临时节点(/controller)让自己成为控制器。其他的节点也会进行创建,只不过会收到一个节点已存在的异常。

其他的broker在控制器节点上创建zk watch对象,可以收到这个节点的变更通知,从而确保集群里一次只有一个控制器存在。

如果控制器被关闭或者与zk断开连接,zk上的临时节点就会小时,其他的节点收到消息后会尝试让自己成为控制器(第一个在zk中成功创建控制器节点的broker成为新的控制器)。

当控制器发现一个broker已经离开集群,他就知道那些失去首领的分区需要一个新的首领,控制器遍历这些分区,并确定谁应该成为新的首领,然后向所有包含新首领或者现有跟随者的broker发送请求,请求包含了谁是新首领以及绅士分区跟随者的信息。

当控制器返现一个新的broker加入集群时,他会使用broker ID来检查新加入的broker时候包含
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值