栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

如何获取Kafka中的全部主题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何获取Kafka中的全部主题

如何获取Kafka中的全部主题

想要获取Kafka的全部主题,首先要连接Kafka,连接Kafka有多种方式,目前最常用的就是采用AdminClient的客户端对象连接Kafka集群。

在通过AdminClient连接到Kafka集群后,得到了AdminClient对象。

再根据AdminClient对象获取listTopics,得到主题列表,通过get到具体的name列表,打印出来的就是Kafka集群中的全部主题名。

配置文件:



    4.0.0

    com.lmz
    springBootKafkaTest
    1.0-SNAPSHOT

    
        spring-boot-starter-parent
        org.springframework.boot
        2.2.5.RELEASE
        
    

    
        
            org.springframework.boot
            spring-boot-starter
        
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.projectlombok
            lombok
        

        
            org.apache.kafka
            kafka-clients
        
        
            org.apache.kafka
            kafka_2.11
        
    


注意springboot和Kafka的版本

代码展示:

import java.util.*;
import java.util.concurrent.ExecutionException;

import org.apache.kafka.clients.admin.AdminClient;
import org.apache.kafka.clients.admin.ListTopicsResult;
import org.apache.kafka.clients.admin.TopicListing;
import org.apache.kafka.common.KafkaFuture;


public class KafkaTest {

    public static void main(String[] args) throws ExecutionException, InterruptedException {
        toAllTopic(adminClient());
    }

    
    public static void toAllTopic(AdminClient adminClient) {
        //根据adminClient获取主题列表
        ListTopicsResult listTopicsResult = adminClient.listTopics();
        KafkaFuture> names1 = listTopicsResult.names();
        Set names = null;
        try {
            //listTopicsResult.names()是KafkaFuture>类型的,调用get方法后得到set类型的值
            names = listTopicsResult.names().get();
            //打印得到的topic列表
            names.forEach(c -> System.out.println("name:" + c));
            
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (ExecutionException e) {
            e.printStackTrace();
        }

    }

    
    public static AdminClient adminClient(){
        //配置文件操作类,我们除了编写.properties后缀的文件外,可以采用Properties类配置,省去了.properties文件
        Properties properties = new Properties();
        //put采用key,value的形式("bootstrap.servers"为Kafka配置集群地址的参数;"集群地址"为具体的集群地址,可以为自己配置的虚拟机中的Kafka集群地址)
        properties.put("bootstrap.servers","集群地址");

        return AdminClient.create(properties);
    }
}

注:AdminClient 类是在 org.apache.kafka.clients.admin.AdminClient 包中的

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1021436.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号