Kafka整体架构

本文介绍了Kafka的整体架构,包括Producer、Broker、Consumer和Zookeeper的角色。Producer负责发送消息,Broker作为服务端存储和协调消息。Consumer从Broker获取消息进行处理。Zookeeper协调Broker,管理元数据和topic路由信息。Kafka的消息以topic为单位,通过offset保证分区内的顺序性。Record包含key、value和timestamp。Leader副本负责读写,Follower保持同步。Consumer Group实现消息的并行消费,Replication确保数据高可用,Partition是消息的逻辑分组,每个分区有自己的offset。

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

角色介绍:

  • Producer:消息生产者,负责发送消息到kafka集群
  • **Broker ** : kafka服务端,负责接收客户端(producer/consumer )请求、存储消息、协调消费组等。Broker没有主从之分,只不过通过Zookeeper选择出一个控制节点,控制节点负责管理整个集群中所有分区和副本的状态,例如分区故障后重新选择leader分区等。
  • **Consumer **:负责从Broker上拉取消息进行业务处理。
  • **Zookeeper **:负责协调整个Broker集群,负责选取控制Broker、存储集群 元数据 、topic路由信息存储等。
  • Log:磁盘上的日志目录,消息就是存储在log中。
  • **Topic **:kafka中的消息以topic为单位进行划分,生产者将消息发送到特定topic,而消费者负责订阅topic的消息并进行消费。
  • **Offset **:offset是消息在分区中的唯一标识,kafka通过它来保证消息在分区的顺序性,不过offset并不跨越分区,也就是kafka保证的是分区有序性而不是主题有序性。
  • **Record **:实际写入kafka中并可以被读取的消息记录。每个record包含了key、value和timestamp。
  • Leader:每个分区多个副本的“主”leader,生产者发送数据的对象,以及消费者消费数据的对象都是leader。
  • **Follower **:每个分区多副本中的“从”follower,实时从Leader中同步数据,保持和leader数据的同步。Leader发生故障时,某个follower会成为新的leader。
  • Consumer ****** Group: **Consumer Group 为消费者组,一个消费者组可以包含一个或多个Consumer。使用多分区 + 多消费者 方式可以极大提高数据下游的处理速度,同一消费者组中的消息不会重复消费,同样的,不同消费组中组中的消费者消费消息时互不影响。 K afka就是通过消费者组的方式来实现P2P模式和广播模式。
  • **Replication **: 副本,是kafka保证数据高可用的方式,kafka同一Partition的数据可以在多Broker上存在多个副本,通常只有主副本对外提供读写服务,当主副本所在broker崩溃或发生网络异常,kafka会在Controller的管理下重新选择新的Leader副本对外提供读写服务。
  • Partition:一个topic可以分为多个分区,每个分区只属于单个主题。同一个主题下不同分区包含的消息是不同的,分区在存储层面可以看作一个可追加的日志(Log)文件,消息在被追加到分区日志文件的时候都会分配一个特定的偏移量(offset)。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值