java - 如何动态获取主题名称然后从中读取

标签 java apache-kafka kafka-consumer-api spring-kafka

我有一个场景,我需要动态读取主题名称。有没有办法获取域中所有主题的名称,然后一一读取其中的消息?

     @KafkaListener(groupId="something")
     someMethod(List<topics> topics){
        switchTo(topics.get(0)){
          read messages}
        switchTo(topics.get(1)){
          read messages}
       ...
       ...
       ...
     }

最佳答案

您所需要的只是 AdminClient 中的 listTopics :

Properties properties = new Properties();
properties.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, "kafka-host:9092");

AdminClient adminClient = AdminClient.create(properties);

System.out.println(adminClient.listTopics(new ListTopicsOptions()).names().get());

关于java - 如何动态获取主题名称然后从中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60521086/

相关文章:

java - 是否可以调用 int 或 vector 的 Finalize 方法?

使用反射使用任何构造函数实例化任何类的 Java 泛型方法

spring - Kafka Consumer 在 Spring Boot 中没有收到消息

performance - 如何有效地为kafka消费者组实现不断更新的主题

apache-kafka - 即使Apache Kafka配置文件已经有了,为什么我们还需要提及Zookeeper的细节?

java - 从文件夹中选择 .class 文件

java - 预检响应没有 HTTP 正常状态。

java - 从同一 JVM 运行 kafka 消费者和生产者时生产者速度缓慢

java - Kafka消费者组,创建消费者组时将offset设置为0

apache-kafka - 具有更改日志主题与日志压缩源主题的 Kafka Streams KTable 存储