用户登录

Topic 里的信息数据可以放在不同的 Partition 里面,Partition 就是分区的意思,也就是每个 Topic 的分区都可以存储一部分这个 Topic 数据。在往 Kafka 的 Topic 里面放数据的时候,这些数据会被分别放在这个 Topic 里的不同的分区里面。

在创建 Topic 的时候可以设置这个 Topic 可以有几个分区。如果集群里有多台服务器,这些分区会分部在不同的服务器上。

刚才我们创建这个叫 demo 的 Topic 的时候,并没有特别设置这个 Topic 有几个分区,所以默认这个 Topic 就只会有一个分区。

用 kafka-topics 命令,describe 一下 demo 这个 topic ,这个 PartitionCount 指的就是分区的数量,你会看到这个 Topic 有一个分区。

下面会列出这个 Topic 的分区,这个 Partition 分区的编号就是 0。在 Confluent 的控制中心,打开 demo 这个 topic,这里会显示这个 topic 相关的信息,在 Partitions 这里,显示这个 topic 一共有一个分区,这个分区的编号是 0 。

下面我们可以执行命令修改一下这个 topic 的分区的数量,用一下 kafka-topics 命令,加上一个 alter 选项,修改一下 demo 这个 topic ,后面加上一个 --partitions 选项,然后重新设置一下这个 topic 的分区的数量,比如设置成 2 ,执行一下这个命令。

然后再 describe 一下这个 topic ,你会发现,现在这个 topic 有两个分区。因为 PartitionCount 这里的数字是 2。

这两个分区的编号,分别是 0 还有 1 。可以再到控制中心观察一下,这里也会显示 demo 这个 topic 有两个分区,编号是 0 还有 1 。

这个 Leader 后面的数字,表示的就是 Kafka 集群里的服务器的编号,也就是 Broker 的 ID。现在这两个分区都在同一台服务器上,这个服务器的编号是 0 。

因为在我的集群里面只有一台服务器,所以这些分区就只能在一台服务器上。如果我有两台服务器,那这个 Topic 的这两个分区就会分部在这两台服务器上。

Partitions:消息分区《 Kafka:关键概念 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点