kafka组件概念

本文介绍了Kafka的主要组件,包括broker作为Kafka实例和节点,topic作为数据主题,partition为数据分区,replica用于副本复制,区分leader和follower的角色。此外,还提及了producer、consumer、ConsumerGroup以及controller和zookeeper在Kafka集群中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

broker(kafka实例,节点):

kafka应用实例,包含多个topic
无副本机制,宕机就无法使用
kafka集群由多个broker组成
接受生产者的消息,为消息设置偏移量,并提交消息到磁盘保护
为消费者服务,对读取分区的请求作出响应,返回已经提交到磁盘上的消息

topic(主题):

不同消息可以通过主题来区分
topic可以分布在不同的broker上

partition(分区):

一个topic可以有多个分区
一个分区就是一个消息队列,当有且仅有一个消费者消费这个分区时,消息是按顺序消费的。

replica(分区副本):

当节点发生故障时,为了保证partition数据不丢失,且kafka能够正常运行而提供的副本机制
主从副本应该均匀地分步在所有节点上,否则宕机后主从一起挂掉,就没有太大的意义

leader(主副本):

即当前生产者发送消息的对象和消费者获取消息的对象都是leader

follower(从副本):

实时从leader同步数据。leader故障时,通过ISA机制选取一个成为新的leader。

broker(kafka实例,节点)、partition(分区)、leader(主副本)、follower(从副本)关系

在这里插入图片描述

producer(生产者)

消息生产者,生产消息后经过处理存放在partition的leader中

Consumer(消费者)

消息消费者,从partition的leader中获取消息消费

ConsumerGroup(消费者组)

可以并行消费partition的leader中的数据
每个消费者组都可以拿到相同的全部数据。
一个分区内的消息只能被同一个组中的一个消费者消费。
当分区数少于消费者数的时候,多于的消费者无事可做(不能消费数据)。
当分区数多于消费者数的时候,有的消费者对应多个分区。
当分区数等于消费者数的时候,每个消费者对应一个分区。
启动多个组,相同的数据会被不同组的消费者消费多次。(即消费者组不会管消息有没有被别的组消费)

controller(控制器)

kafka集群中会有一个或多个broker,其中一个会被选举为controller
当某个分区的leader副本出现故障时,由控制器负责为该分区从follower中选举一个成为新的leader副本
当检测到ISR列表发生变化,有controller通知集群中所有broker更新其MetadataCache信息
增加某个topic分区的时候也会由controller管理分区的重新分配工作

zookeeper(集群管理器)

broker启动时会在zookeeper注册并保持相关的元数据(topic,partition信息等)更新
监测partition中leader的存活性
consumer使用zookeeper来注册信息,用来发现broker和对应的partition列表,并和partition的leader建立socket连接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值