Broker相关概念
一台 Kafka 服务器节点就是一个broker。一个集群中包含多个 broker。
一个 Kafka 节点就是一个broker。一个或者多个broker节点组成一个Kafka的集群。
比如:
在现在的环境中,我们分别在 10.0.24.12、10.0.24.13、10.0.24.14 三台机器上部署了Kafka 。那么我们现在就有三个 broker 节点。
总结:在一台机器上部署一套Kafka。就创建了一个 broker 节点。
Zookeeper 相关概念
zookeeper 主要是用来管理和协调 broker.。
比如 :在 zookeeper中维护了Kafka的 broker 节点信息,当前有多少个存活的broker。
维护了一个 controller 。在该 controller node中记录了一个抢占成功的 Kafka broker。用于后期选举的协调。
### 查看 kafka node 节点下维护了kafka 创建的所有node
[zk: localhost:2181(CONNECTED) 0] ls /kafka
[admin, brokers, cluster, config, consumers, controller, controller_epoch, isr_change_notification, latest_producer_id_block, log_dir_event_notification]
[zk: localhost:2181(CONNECTED) 1]
[zk: localhost:2181(CONNECTED) 1]
### 查看存活的 kafka broker节点
[zk: localhost:2181(CONNECTED) 1] ls /kafka/brokers/ids
[0, 1, 2]
[zk: localhost:2181(CONNECTED) 2]
[zk: localhost:2181(CONNECTED) 2]
### 查看 controller 节点
[zk: localhost:2181(CONNECTED) 2] ls /kafka/controller
[]
[zk: localhost:2181(CONNECTED) 2]
[zk: localhost:2181(CONNECTED) 2]
### 查看 controller node中抢占成功的 broker节点
[zk: localhost:2181(CONNECTED) 3] get /kafka/controller
{"version":1,"brokerid":2,"timestamp":"1681443871970"}
Topic 主题相关概念
主题,是一种逻辑上的概念。主要可以帮助我们在逻辑上将消息进行分类。
比如:
在业务上我们可以将消息分为2类,一类是记录用户订单类的消息,一类是记录用户点击行为类的消息。此时,在业务上是2类不同的消息,
我们就可以创建2个 topic 主题,这样将不同类型的消息发送到不同的 topic 主题中
总结:
Topic 主题是一个逻辑概念,用于生产者发布数据,消费者拉取数据
Kafka 的主题名字必须是唯一的,Kafka 中可以任意数量的主题,没有数量的限制。
消息一旦发送到 Topic 中,消息是不能被更新修改的。
Partitions 分区相关概念
Kafka 的分区可以提高 Kafka 扩展性。
一个 Topic 主题,我们可以对其进行分区,这样可以将数据分散到不同的 broker 机器上,提高对应的数据量。
比如:我们有 30T 的数据,数据怎么存储最合适?
此时。如果我们将这 30T 的数据全部存储到一台机器上,可能对该机器性能有很大的要求,包括存储,以及cpu、内存等。因为数据不仅要快速存储,还要能够很快的查询出来。
Kafka 使用分区的方式,在集群中,我们有 10.0.24.12、10.0.24.13、10.0.24.14、三台broker节点。此时,在定义 Topic 的时候,我们可以进行分区,将分区数定义为3个。这样数据被分散存储。
数据分散存储,在查询的时候,不同的数据到不同的节点中查询,同样提高了查询的吞吐量。
那么该 Topic 就会有三个分区。partition-0、partition-1、partition-2, 这样30T 数据就被分散存储到三台机器中。
Replicas 副本相关概念
一个 Topic 的每个分区都有若干个副本,一个 Leader 和若干个 Follower。( leader、follower 两者都是副本 )
副本可以提供Kafka 集群的可用性,保证在服务器出现故障的时候,确保数据依然可用。
我们在定义 Topic 的时候
### partitions 3 指定有三个分区
### replication-factor 3 副本因子,指定副本个数为3个
--partitions 3 -replication-factor 3
副本 leader 相关概念
每一个分区中都有多个副本,这些副本中应该有一个副本是 leader 副本。
leader 副本是当前分区中对外工作的副本,负责接受 producer 生产者发送过来的消息,也负责接收 consumer 消费者的请求。
生产者发送数据的对象,以及消费者消费数 据的对象都是 Leader。
副本 follower 相关概念
每一个分区中都有多个副本,这些副本中除了一个副本是 leader之外,其他的副本都是 follower。
follower 实时从 Leader 中同步数据,保持和 Leader 数据的同步。Leader 发生故障时,某个 Follower 会成为新的 Leader。
生产者 Producer 相关概念
生产者负责将数据推送到 topic 主题中。
消费者 Consumer 相关概念
消费者负责从 topic中拉取数据,并自己进行处理
Offset 偏移量相关概念
偏移量,consumer 从 Topic 中消费消息 (其实是从 Topic 中的 Partition 分区中消费)。
消费消息,就需要记录本次消费的位置,这样下次才能从该位置继续消费,这样才能避免数据的重复消费。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?