订阅多个主题的Kafka消费者控制台

时间:2017-01-02 08:26:11

标签: apache-kafka

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

制作人控制台:

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic hello-topic

消费者控制台:

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic hello-topic

但上面的命令只订阅了一个主题。我如何订阅多个主题?

3 个答案:

答案 0 :(得分:4)

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

对于多个主题,请使用 whitelist 选项。这将被解释为正则表达式,并且必须加引号,请参见Kafka documentation。 因此正确的命令将是:

kafka-console-consumer.sh --bootstrap-server localhost:9092 --whitelist 'hello-topic|world-topic|another-topic'

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

kafka-console-consumer.sh --bootstrap-server localhost:9092 --whitelist '.*'


注意

  

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

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

答案 1 :(得分:0)

嗨,实际问题在于语法,从版本到版本,它一直在变化。

./kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic muleesb

对你有用

原因

对于kafka_2.11-2.1.0以上的kafka版本:./kafka-console-consumer.sh --bootstrap-server IP:PORT --from-beginning --topic TOPIC

对于 Kafka 版本 kafka_2.11_0.9.0.0 及以下:/kafka-console-consumer.sh --zookeeper IP:PORT —-topic TOPIC --from-beginning --whitelist TOPIC

Exactly one of whitelist/blacklist/topic is required

答案 2 :(得分:-1)

正如Harald所述,使用白名单/黑名单选项来包含/排除一组主题以供消费。

sh kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --whitelist Hello,World