前言

本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系

正文

record

Kafka 是消息引擎嘛,这里的消息就是指 Kafka 处理的主要对象。

(老版本中叫 message)

producer

消息生产者,发布消息到 Kafka集群的终端或服务。

broker

Kafka集群中包含的服务器。

topic

每条发布到 Kafka集群的消息属于的类别,即 Kafka是面向 topic 的。

主题是承载消息的逻辑容器,在实际使用中多用来区分具体的业务。

partition

partition 是物理上的概念,每个 topic 包含一个或多个 partition。Kafka分配的单位是 partition。

partition是一个有序不变的消息序列。

offset

表示分区中每条消息的位置信息,是一个单调递增且不变的值。

Consumer Offset

表征消费者消费进度,每个消费者都有自己的消费者位移。

consumer

从 Kafka集群中消费消息的终端或服务。

Consumer group

high-level consumer API 中,每个 consumer 都属于一个 consumer group,每条消息只能被 consumer group 中的一个 Consumer 消费,但可以被多个 consumer group 消费。

rebalance

消费者组内某个消费者实例挂掉后,其他消费者实例自动重新分配订阅主题分区的过程。rebalance 是 Kafka 消费者端实现高可用的重要手段

replica

partition 的副本,保障 partition 的高可用。

Kafka 中同一条消息能够被拷贝到多个地方以提供数据冗余,这些地方就是所谓的副本。

副本还分为领导者副本和追随者副本,各自有不同的角色划分。

副本是在分区层级下的,即每个分区可配置多个副本实现高可用。

leader

replica 中的一个角色, producer 和 consumer 只跟 leader 交互。

follower

replica 中的一个角色,从 leader 中复制数据。

controller

Kafka集群中某个broker宕机之后,是谁负责感知到他的宕机,以及负责进行Leader Partition的选举?

如果你在Kafka集群里新加入了一些机器,此时谁来负责把集群里的数据进行负载均衡的迁移?

包括你的Kafka集群的各种元数据,比如说每台机器上有哪些partition,谁是leader,谁是follower,是谁来管理的?

如果你要删除一个topic,那么背后的各种partition如何删除,是谁来控制?

还有就是比如Kafka集群扩容加入一个新的broker,是谁负责监听这个broker的加入?

如果某个broker崩溃了,是谁负责监听这个broker崩溃?

这里就需要一个Kafka集群的总控组件,Controller。他负责管理整个Kafka集群范围内的各种东西。

在这里插入图片描述

上一篇 下一篇