繁体   English   中英

从消费消息中获取 Kafka 主题的名称

[英]Get the name of the Kafka topic from a consumed message

  1. 我正在使用正则表达式模式收听多个 Kafka 主题
  2. 例如worker_123_456_topicworker_789_10112_topic等的主题名称
  3. 我要抢123_456789_10112
  4. 因此,无论如何可以从所消费的消息中知道主题的名称吗?

任何线索都非常感谢! 谢谢

在 Spring-Kafka API 中,在 Kafka 消息中,您应该有一个名为“RECEIVED_TOPIC”的标头,其中包含您要查找的信息。

查看此链接: https ://github.com/spring-projects/spring-kafka/issues/290

无论您如何订阅数据,您都可以从 Java API 访问ConsumerRecord.topic()

我要抢123_456和789_10112

给定主题的字符串,使用substringsplit("_", 1)方法

虽然其他答案是正确的,但只是进一步解释一下:

可以说,您的键值对的类型为String, String然后:

ConsumerRecords<String,String> recs = kafkaConsumer.poll();

Iterator<ConsumerRecord<String,String>> itr= recs.iterator();
while(itr.hasNext()){
   String topicName = itr.next().topic(); 
    //then do either split operation with topic name.
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM