实战Kafka—术语

kafka特点

  • 分布式,水平扩容,高可用
  • 高吞吐量
  • 开源
  • 大规模、持久化存储
  • 具备传统消息队列具有的解耦特性,可看做数据平台,适用连续处理数据流的场景

Kafka基本术语释疑

Message

存储在kafka中的数据单位被称为message。

Topic

message 通过 topic进行分类

Partitions

分区,一个topic可以划分到多个分区中,每一个分区都是一组单独message队列,message顺序写入分区.

因此,当有多个分区,因此无法保证全局topic的时间顺序。

Producers && publishers && writers.

写数据到kafka的生产者

Consumers && subscribers && readers

消费者,可以订阅一个或多个topic消费数据,按照每个分区中产生的数据顺序消费。

Offset

偏移量,topic在每个分区中的每个message都有唯一的偏移量。消费者可以通过偏移量追踪到哪些数据是已经消费过了,这样即便程序中断和重启后可以继续消费。借助于offset的偏移还可以重复消费数据,甚至丢弃数据。

commit

我们将更新分区中当前offset的操作称为commit(提交)

Consumers group

如果消费者A,B属于同一个消费组,他们可以并发消费同一个topic的数据。kafka分配统一topic不同的分区供A,B消费。如果某一个消费者挂掉了,还可以将分区进行重新的均衡分配。

Broker

单个kafka服务端叫做Broker,生产者消费者都需要与此交互。

cluster

多个Brokers组成cluster kafka集群

在cluster中,一个分区中的数据可能在多个broker中建立副本,这提供了kafka高可用性。但是一个分区只能有一个broker作为其leader.