目录

6. 架构

6.1 Kafka重要概念

6.1.2 zookeeper

6.1.3 producer(生产者)

6.1.4 consumer(消费者)

6.1.5 consumer group(消费者组)

6.1.6 分区(Partitions)

6.1.7 副本(Replicas)

6.1.8 主题(Topic)

6.1.9 偏移量(offset)

6.2 消费者组


Kafka入门及进阶汇总 

6. 架构

6.1 Kafka重要概念

6.1.1 broker

 

  • 一个Kafka的集群通常由多个broker组成,这样才能实现负载均衡、以及容错
  • broker是无状态(Sateless)的,它们是通过ZooKeeper来维护集群状态
  •  一个Kafka的broker每秒可以处理数十万次读写,每个broker都可以处理TB消息而不影响性能

6.1.2 zookeeper

  • ZK用来管理和协调broker,并且存储了Kafka的元数据(例如:有多少topic、partition、consumer)
  • ZK服务主要用于通知生产者和消费者Kafka集群中有新的broker加入、或者Kafka集群中出现故障的broker。

PS:Kafka正在逐步想办法将ZooKeeper剥离,维护两套集群成本较高,社区提出KIP-500就是要替换掉ZooKeeper的依赖。“Kafka on Kafka”——Kafka自己来管理自己的元数据

6.1.3 producer(生产者)

生产者负责将数据推送给broker的topic

6.1.4 consumer(消费者)

消费者负责从broker的topic中拉取数据,并自己进行处理

6.1.5 consumer group(消费者组)

  • consumer group是kafka提供的可扩展且具有容错性的消费者机制
  • 一个消费者组可以包含多个消费者
  • 一个消费者组有一个唯一的ID(group Id)
  •  组内的消费者一起消费主题的所有分区数据

6.1.6 分区(Partitions)

 

在Kafka集群中,主题被分为多个分区

6.1.7 副本(Replicas)

 

  • 副本可以确保某个服务器出现故障时,确保数据依然可用
  • 在Kafka中,一般都会设计副本的个数>1

6.1.8 主题(Topic)

 

  • 主题是一个逻辑概念,用于生产者发布数据,消费者拉取数据
  •  Kafka中的主题必须要有标识符,而且是唯一的,Kafka中可以有任意数量的主题,没有数量上的限制
  • 在主题中的消息是有结构的,一般一个主题包含某一类消息
  • 一旦生产者发送消息到主题中,这些消息就不能被更新(更改)

6.1.9 偏移量(offset)

 

  • offset记录着下一条将要发送给Consumer的消息的序号
  • 默认Kafka将offset存储在ZooKeeper中
  • 在一个分区中,消息是有顺序的方式存储着,每个在分区的消费都是有一个递增的id。这个就是偏移量offset
  • 偏移量在分区中才是有意义的。在分区之间,offset是没有任何意义的

6.2 消费者组

Kafka支持有多个消费者同时消费一个主题中的数据。Kafka将分区均分到消费者,如果只有一个分区,多个消费者的情况,只有一个消费,其他阻塞等待。

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐