kafka 通过代码对队列进行操作

复制代码
String bootstrapServers = "192.163.0.1:9092";

    KafkaAdmin kafkaAdmin;
    AdminClient adminClient;
    /**
     * 项目启动调用或者通过@Bean注入
     */
    public void createKafkaAdmin(){
        Map<String, Object> props = new HashMap<>();
        props.put("bootstrap.servers", bootstrapServers);
        props.put("client.id","admin-001");
        kafkaAdmin = new KafkaAdmin(props);
        kafkaAdmin.setAutoCreate(true);
        adminClient = AdminClient.create(kafkaAdmin.getConfigurationProperties());
    }

    /**
     * 获取kafka中所有的topic名称
     * @return
     */
    public List<String> getAllTopic(){
        ListTopicsResult topicList = adminClient.listTopics();
        KafkaFuture<Set<String>> kafkaFuture = topicList.names();
        Set<String> topicSet = kafkaFuture.get();
        topicSet.stream().forEach(e->{
            System.err.println("kafka:【"+bootstrapServers+"】存在topic:【"+e"】");
        });
        return CollectionUtil.newArrayList(topicSet.iterator());
    }

    /**
     * 创建topic
     */
    public void createTopic(String topicName){
        try {
            //9 -> 分区数量 3->节点数量
            NewTopic newTopic = new NewTopic(topicName,9,(short)3);
            List<NewTopic> newTopics = new ArrayList<>();
            newTopics.add(newTopic);
            CreateTopicsResult createResult = adminClient.createTopics(newTopics);
            createResult.all().get();
            System.err.println("kafka创建topic:【"+topicName+"】成功");
        } catch (Exception e) {
            System.err.println("kafka创建topic:【"+topicName+"】失败");
            e.printStackTrace();
        }
    }
复制代码

 

posted @   雨梦大木  阅读(60)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示