使用Java API建立(create),查看(describe),列舉(list),刪除(delete)Kafka主題(Topic)

來源:互聯網
上載者:User

標籤:

使用Kafka的同學都知道,我們每次建立Kafka主題(Topic)的時候可以指定分區數和副本數等資訊,如果將這些屬性配置到server.properties檔案中,以後調用Java API產生的主題將使用預設值,先改變需要使用命令bin/kafka-topics.sh --zookeeper localhost:2181 --alter --topic my-topic --config max.message.bytes=128000顯示的修改,我們也希望將此過程在Producer調用之前通過API的方式進行設定,無需在之前或之後使用指令碼進行操作,所以才了這篇文章。查看源碼發現,其實內部所有的實現都是通過TopicCommand的main方法,在此記錄兩種方式:

1、建立主題(Topic)

【命令方式】:bin/kafka-topics.sh --zookeeper zk_host:port/chroot --create --topic my_topic_name --partitions 20 --replication-factor 3 --config x=y

【JAVA API方式】:

 

[java] view plaincopy 
  1. String[] options = new String[]{  
  2.     "--create",  
  3.     "--zookeeper",  
  4.     "zk_host:port/chroot",  
  5.     "--partitions",  
  6.     "20",  
  7.     "--topic",  
  8.     "my_topic_name",  
  9.     "--replication-factor",  
  10.     "3",  
  11.     "--config",  
  12.     "x=y"  
  13. };  
  14. TopicCommand.main(options);  

2、查看所有主題

 

【命令方式】:bin/kafka-topics.sh --list --zookeeper localhost:2181

【JAVA API方式】:

 

[java] view plaincopy 
  1. String[] options = new String[]{  
  2.     "--list",  
  3.     "--zookeeper",  
  4.     "localhost:2181"  
  5. };  
  6. TopicCommand.main(options);  


3、查看指定主題:

 

【命令方式】:bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic

【JAVA API方式】:

 

[java] view plaincopy 
  1. String[] options = new String[]{  
  2.     "--describe",  
  3.     "--zookeeper",  
  4.     "localhost:2181",  
  5.     "--topic",  
  6.     "my-replicated-topic",  
  7. };  
  8. TopicCommand.main(options);  


4、修改主題:

 

【命令方式】:bin/kafka-topics.sh --zookeeper zk_host:port/chroot --alter --topic my_topic_name --deleteConfig x
【JAVA API方式】:

 

[java] view plaincopy 
  1. String[] options = new String[]{  
  2.     "--alter",  
  3.     "--zookeeper",  
  4.     "zk_host:port/chroot",  
  5.     "--topic",  
  6.     "my_topic_name",  
  7.     "--deleteConfig",  
  8.     "x"  
  9. };  
  10. TopicCommand.main(options);  



5、刪除出題:

   【命令方式】:無

   【JAVA API方式】:

 

[java] view plaincopy 
    1. String[] options = new String[]{  
    2.     "--zookeeper",  
    3.     "zk_host:port/chroot",  
    4.     "--topic",  
    5.     "my_topic_name"  
    6. };  
    7. DeleteTopicCommand.main(options);  

使用Java API建立(create),查看(describe),列舉(list),刪除(delete)Kafka主題(Topic)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.