Kafka 基本术语
对于 Kafka 基本原理的介绍,可以通过对以下基本术语的介绍进行。
2.1.1 Topic
主题。在 Kafka 中,使用一个类别属性来划分消息的所属类,划分消息的这个类称为 topic。
topic 相当于消息的分类标签,是一个逻辑概念。
2.1.2 Partition
分区。topic 中的消息被分割为一个或多个 partition,其是一个物理概念,对应到系统上就是一个或若干个目录。
partiiton 本身是一个 FIFO 队列,其中的消息是有序的。但,在 Partition 间无法保证消息的顺序性。
2.1.3 segment
段。将 partition 进一步细分为了若干的 segment,每个 segment 文件的最大大小相等。
2.1.4 Broker
Kafka 集群包含一个或多个服务器,每个服务器节点称为一个 broker。
假设某个 topic 中有 N 个 partition,集群中有 M 个 Broker,broker 与 partition 间的数量关系:
若 N>=M,且(N%M=0),则每个 broker 上会平均存储 N/M 个 partition。
若 N>M,且(N%M!=0),这其中会出现 broker 上分配的 partition 不平均的情况。这种情况要避免。
若 N<M,这种情况会出现有的 broker 上没有分到 partition 的情况。
2.1.5 Producer
生产者。即消息的发布者,其会将某 topic 的消息发布到相应的 partition 中。
2.1.6 Consumer
消费者。可以从 broker 中读取消息。
一个消费者可以消费多个 topic 的消息。
一个消费者可以消费同一个 topic 中的多个 partition 消息。