用户登录

Consumer 都会在一个群组里面,这个群组里可以有多个 Consumer,一块儿使用在 Topic 里的消息。之前我们用一个命令创建了一个 Consumer,默认这个 Consumer 也会在一个群组里。

可以新建一个标签,然后执行一下 kafka-consumer-groups --bootstrap-server 是 localhost:9092 ,加上一个 --list ,列出所有的 Consumer 群组。

这里你会看到几个群组,这个 console-consumer 前缀的群组就是我们之前用 kafka-console-consumer 命令,创建 consumer 的时候,自动创建的一个对应的群组。

创建 consumer 的时候我们可以自己设置一下要让这个 consumer 属于哪一个群组,停止一下这个 Consumer ,然后重新再创建一个,这次我们在命令里加上 --group 选项,后面是一个群组的名字,比如 phoenix 。

然后再去查看一下 Kafka 里的群组列表,你会发现,这里会出现一个叫 phoenix 的群组。 下面可以 describe 一下这个群组。

执行 kafka-consumer-groups ,加上 describe 选项,然后在 group 的后面设置一下群组的名字,比如 phoenix 。

这里会显示这个群组相关的一些信息。如果在终端不方便的话,可以复制一下这段信息,然后打开编辑器,新建一个标签,把复制的信息粘贴到这里。再观察一下。

这里显示的就是 Phoenix 这个 Consumer 群组相关的一些东西,这个群组使用的 Topic 是 demo,这个 Topic 有两个 Partition,就是两个分区,编号是 0 还有 1。每个分区里面都会有一些消息。

目前在这个 Group 里面只有一个 Consumer,后面会有这个 Consumer 的 ID,你会发现,这两个 Conumser 的 ID 是一样的,就是同一个 Consumer 同时使用来自 demo 这个 Topic 里的两个分区的消息。

如果这个群组有两个 Consumer,这样一个 Consumer 就会只负责一个分区。

回到终端,复制一下这个创建 Consumer 的命令,新建一个终端标签,执行一下这行命令,再创建一个 Consumer ,这个 Consumer 也会属于 phoenix 这个群组。

然后再 describe 一下 phoenix 这个群组。 复制一下输出的内容,把它粘贴到编辑器里观察一下。 这次你会发现,这个群组会有两个 Consumer,注意它们的 ID 是不一样的。每一个 Consumer 只负责 Topic 里的一个分区里的消息。

在控制中心也可以观察一下 Consumer 群组,打开 Consumers, 然后打开 Phoenix 这个 Consumer 群组。下面会显示这个群组的相关的信息。

回到终端,打开这个 Produer 窗口,这里我们可以在这个 Producer 里面,往 demo 这个 Topic 里发布几条新的消息。

然后观察一下我们用命令创建的这两个 Consumer,因为这两个 Consumer 属于同一个群组,所以每一个 Consumer 会负责 Topic 里的其中的一个分区里的消息。

Consumer Group:消息使用者群组《 Kafka:关键概念 》

统计

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

社会化网络

关于

微信订阅号

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