列出所有kafka主题

时间:2017-06-07 06:59:09

标签: apache-kafka apache-zookeeper

我在没有 zookeeper 的情况下使用 kafka 0.10 。我想获得kafka主题列表。由于我们不使用zookeeper,因此该命令无效: bin/kafka-topics.sh --list --zookeeper localhost:2181。如果没有zookeeper,我如何获得相同的输出?

15 个答案:

答案 0 :(得分:50)

Kafka使用ZooKeeper,因此如果您还没有ZooKeeper服务器,则需要先启动它。

如果您不想安装并拥有单独的zookeeper服务器,则可以使用与kafka一起打包的便捷脚本来获取快速且脏的单节点ZooKeeper实例。

启动单节点Zookeeper实例:

bin/zookeeper-server-start.sh config/zookeeper.properties

启动Kafka服务器:

bin/kafka-server-start.sh config/server.properties

列出Kafka中可用的主题:

bin/kafka-topics.sh --list --zookeeper localhost:2181

答案 1 :(得分:10)

如果我们运行list topic命令,请查看该主题:

$ bin/kafka-topics.sh --list --zookeeper localhost:2181

检查数据是否在Kafka登陆:

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

答案 2 :(得分:4)

Kafka需要zookeeper,实际上主题列表存储在那里,因此kafka-topics工具也需要连接到zookeeper。 在较新版本中的kafka-clients apis不再直接与zookeeper 交谈,也许这就是为什么你的印象是没有zookeeper的设置是可能的。 它不是,因为kafka在内部依赖它。供参考: http://kafka.apache.org/documentation.html#quickstart 第2步:

  

Kafka使用ZooKeeper,因此如果您还没有ZooKeeper服务器,则需要先启动它。

答案 3 :(得分:3)

Kafka客户不再需要zookeeper,但Kafka服务器确实需要它来运行。

您可以使用新的AdminClient API获取主题列表,但尚未重写使用Kafka的shell命令以使用此新API。

在没有Zookeeper的情况下使用Kafka的另一种方法是使用SaaS Kafka即服务提供商,例如Confluent Cloud,这样您就不会看到或操作Kafka代理(以及所需的后端Zookeeper集合)。

例如,在Confluent Cloud上,您只需使用以下zookeeper free CLI命令:

ccloud topic list

答案 4 :(得分:2)

用于docker化的kafka / zookeeper

docker ps

找到您的Zookeeper容器ID

docker exec -it <id> bash

cd bin

./zkCli.sh

ls /brokers/topics

答案 5 :(得分:1)

Kafka是一个分布式系统,需要Zookeeper。 你也要开始管理动物园。 点击此处的“快速入门”:https://kafka.apache.org/0100/documentation.html#quickstart

答案 6 :(得分:1)

运行Kafka需要Zookeeper。 zookeeper是必须的。如果你想看看没有zookeeper的主题列表,那么你需要kafka监控工具,如Kafka Monitor Tool,kafka-manager等。

答案 7 :(得分:1)

要阅读消息,您应该使用:

kafka-console-consumer.sh --bootstrap-server kafka1:9092,kafka2:9092,kafka3:9092 --topic messages --from-beginning

--bootstrap-server是必填属性。 您只能使用单个kafka1:9020节点。

答案 8 :(得分:1)

命令:

  1. 要启动kafka:

      
        
          

    $ nohup〜/ kafka / bin / kafka-server-start.sh〜/ kafka / config / server.properties>〜/ kafka / kafka.log 2>&1&

        
      
  2. 列出kafka上的所有主题;

      
        
          

    $ bin / kafka-topics.sh --list --zookeeper本地主机:2181

        
      
  3. 要检查数据是否在kafka主题上并打印出来;

      
        
          

    $ bin / kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic your_topic_name --from-beginning

        
      

答案 9 :(得分:1)

Kafka 2.2及更高版本

较新版本的Kafka不再需要ZooKeeper连接字符串来列出主题,而是可以直接通过Kafka代理访问。下载Kafka时,<a href="http://www.facebook.com/dialog/send?app_id=123456789&link=<?=$referal_url?>" target="_blank"><img src="<?=BASE_IMAGE?>FB_Messenger.png" class="img-responsive"> </a> 文件夹中提供了kafka-topics.sh。要列出主题,请执行以下操作:

bin/

答案 10 :(得分:1)

您需要先启动Zookeeper服务器。 因此,首先转到kafka / bin / windows并运行

zookeeper-server-start.bat ../../config/zookeeper.properties

然后在具有新cmd Windows的同一文件夹中,通过运行启动kafka服务器

kafka-server-start.bat ../../config/server.properties
  

注意:如果您是第一次启动它,那么某些   在这些文件中进行更改

然后在kafka / bin / windows中运行

kafka-topics.bat --zookeeper localhost:2181 --list

列出所有现有主题。

答案 11 :(得分:0)

您有一个较旧的软件包版本,其中的命令不再接受zookeeper,而将bootstrap-server作为连接。然后,Confluent将在内部与Zookeeper连接。

https://www.confluent.io/download/(5.3或更高版本)

答案 12 :(得分:0)

您可以尝试使用以下两个命令并列出所有Kafka主题

  • bin / kafka-topics.sh-描述--zookeeper 192.168.0.142:2181,192.168.9.115:2181,192.168.4.57:2181
  • bin / kafka-topics.sh --zookeeper 192.168.0.142:2181,192.168.9.115:2181,192.168.4.57:218 --list

答案 13 :(得分:0)

使用Confluent's REST Proxy API:

curl -X GET -H "Accept: application/vnd.kafka.v2+json" localhost:8082/topics 

其中localhost:8082是Kafka代理地址。

答案 14 :(得分:0)

请使用kafka-topics.sh --list --bootstrap-server localhost:9092 列出所有主题