我使用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)
但是上面的命令仅预订一个主题。如何订阅多个主题?
首先,您应该连接选项 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)