kafka的架构介绍和内部细节剖析

目录

 

一 、kafka的架构介绍

1、生产者API

2、消费者API

3、StreamsAPI

4、ConnectAPI

二、kafka架构内部细节剖析


一 、kafka的架构介绍

kafka的架构介绍和内部细节剖析_第1张图片

1、生产者API

允许应用程序发布记录流至一个或者多个kafka的主题(topics)。

2、消费者API

允许应用程序订阅一个或者多个主题,并处理这些主题接收到的记录流。

3、StreamsAPI

允许应用程序充当流处理器(stream processor),从一个或者多个主题获取输入流,并生产一个输出流到一个或 者多个主题,能够有效的变化输入流为输出流。

4、ConnectAPI

允许构建和运行可重用的生产者或者消费者,能够把kafka主题连接到现有的应用程序或数据系统。例如:一个连接到关系数据库的连接器可能会获取每个表的变化。

二、kafka架构内部细节剖析

kafka的架构介绍和内部细节剖析_第2张图片

 

 

kafka的架构介绍和内部细节剖析_第3张图片

说明:kafka支持消息持久化,消费端为拉模型来拉取数据,消费状态和订阅关系有客户端负责维护,消息消费完后,不会立即删除,会保留历史消息。因此支持多订阅时,消息只会存储一份就可以了。

 

  1. Kafka生态系统四大角色,生产者(Producer)、kafka集群(Broker)、消费者(Consumer)、zookeeper
  2. 每个消费者都必须属于一个消费组,一个组内的消费者可以多个。
  3. 一个Topic可以有1到多个多个分区(Partition)
  4. 一个分区可以有1到多个segment。
  5. 每个segment可以有由一个log和一个index组成。
  6. 被复制的分区叫做主副本(Leader),复制出来的叫做从副本(Follower)
  7. 生产者只往主副本写数据,消费者只在主副本拉取数据。
  8. 从副本只做数据备份,不做数据读写。
  9. 一个分区内的一条数据,只能被一个消费组内的一个消费者消费。
  10. 消费者的最大并发度由topic的分区数量决定
  11. 分区副本的数量必须小于等于broker的数量
  12. 一个topic内的多个分区,每个分区只是所有数据的一部分。所有分区的数据累加到一起是这个topic的全部数据。
  13. zookeeper中记录了broker的id  、消费者消费数据的offset,消费者与partition的对应关系(ConsumerA—> Partition-0, ConsumerB—> Partition-1)

你可能感兴趣的:(kafka)