Kafka 整体架构 及 概念

本文深入介绍了Kafka的整体架构,包括角色(Producer、Broker、Consumer、Zookeeper)、消息存储(Log、Topic、Partition、Offset)、高吞吐性能的原因(磁盘顺序读写、零拷贝、分区分段、批量压缩)。同时,讨论了Kafka如何保证消息有序,介绍了分区算法(轮询、随机、按消息键保序)。此外,文章还涉及了ISR机制、消息分配策略以及Kafka的ACK机制,探讨了在吞吐量和消息可靠性之间的权衡。

摘要生成于 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。使用多分区 + 多消费者 方式可以极大提高数据下游的处理速度,同一消费者组中的消息不会重复消费,同样的,不同消费组中组中的消费者消费消息时互不影响。Kafka就是通过消费者组的方式来实现P2P模式和广播模式。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值