kafka中topic相关命令

  1、在windows里安装的kafka相关命令一定要是bin\windows目录下

// 正确示例
.\bin\windows\kafka-topics.bat --bootstrap-server localhost:9092 --list

// 错误示例
.\bin\kafka-topics.sh --bootstrap-server localhost:9092 --list

  2、kafka3.0和低版本的命令不一致,不可混用

// 3.0版本命令
.\bin\windows\kafka-topics.bat --bootstrap-server localhost:9092 --list

// 低版本命令
.\bin\windows\kafka-topics.bat --zookeeper 127.0.0.1:2181 --list

相关报错信息

 

Topic常用命令

  1、查看当前所有的topic

.\bin\windows\kafka-topics.bat --bootstrap-server localhost:9092 --list

  2、删除某个topic

// 删除名为Demo.today的topic
.\bin\windows\kafka-topics.bat --bootstrap-server localhost:9092 --delete --topic Demo.today

 

 

PS

  kafka默认是会自动去创建topic;

    @Test
    public void testDemo() throws InterruptedException {
        kafkaTemplate.send("Demo.today", "this is my two demo");
        //休眠5秒,为了使监听器有足够的时间监听到topic的数据
        Thread.sleep(5000);
    }

  若要关闭自动创建topic,只要在server.properties文件中添加如下代码

auto.create.topics.enable=false

  后续如需topic,则必须手动创建

@Configuration
public class KafkaInitialConfiguration {

    @Bean
    public NewTopic initialTopic() {
        // 分区数为8,副本为1;ps:若要修改的话分区数只能增加不能减少
        return new NewTopic("Demo.today", 8, (short) 1);
    }
}

 

强调

Topic宁愿空闲,也不要去删除,因为根本删除不了,还导致程序奔溃(最佳实践一个集群上有2W+ Topic无压力

 

参考文章

【1】https://www.cnblogs.com/liyanbin/p/16118092.html

posted @ 2023-09-14 17:40  先娶国王后取经  阅读(67)  评论(0编辑  收藏  举报