Kafka使用者控制台订阅了多个主题

bra*_*eza 8 apache-kafka

我使用Ubuntu服务器16.04尝试使用Kafka。对于启动生产者和使用者控制台的命令,我使用以下命令。

生产者控制台:

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic hello-topic
Run Code Online (Sandbox Code Playgroud)

消费者控制台:

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic hello-topic
Run Code Online (Sandbox Code Playgroud)

但是上面的命令仅预订一个主题。如何订阅多个主题?

Mar*_*ach 7

首先,您应该连接选项 bootstrap-server到Kafka服务器本身,而不是zookeeper服务器。

对于多个主题,请使用白名单选项。这将被解释为正则表达式,并且必须被引用,请参阅Kafka文档。因此,正确的命令将是:

kafka-console-consumer.sh --bootstrap-server localhost:9092 --whitelist 'hello-topic|world-topic|another-topic'
Run Code Online (Sandbox Code Playgroud)

其他表达式也是可能的,例如

kafka-console-consumer.sh --bootstrap-server localhost:9092 --whitelist '.*'
Run Code Online (Sandbox Code Playgroud)

意识到

为了方便起见,我们允许使用','代替'|' 指定主题列表。

不适用于Kafka 2.0,可能仅在镜像时才使用,而我还没有尝试过。


Kam*_*ash -1

正如 Harald 提到的,使用白名单/黑名单选项来包含/排除一组消费主题。

sh kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --whitelist Hello,World
Run Code Online (Sandbox Code Playgroud)