当前位置: 首页 > 知识库问答 >
问题:

如何在spring boot中按顺序消费Kafka主题

子车灿
2023-03-14

我有一个问题,我做了一个apache kafka消费者在Spring Boot消费3个不同的主题。但是我需要先使用来自第一个主题的所有数据,然后使用来自以下主题的数据,有什么方法可以做到这一点吗?还是你总是用同样的方式读它们?

@Component
public class KafkaTestListener {

@KafkaListener(topics = "${message.topic.name}", groupId = "${message.group.name}")
    public void listenTopic1(String message) {....}

@KafkaListener(topics = "${message.topic.name2}", groupId = "${message.group.name}")
    public void listenTopic3(String message) {....}

@KafkaListener(topics = "${message.topic.name3}", groupId = "${message.group.name}")
    public void listenTopic3(String message) {.....}

}

共有1个答案

南宫胡媚
2023-03-14
  • 给每个监听器一个ID;将autostartup设置为false.
  • 将容器属性IdleEventInterval设置为某个值。
  • 添加@eventlistener方法以接收listenerContaineridleEvents-请参见https://docs.spring.io/spring-kafka/docs/2.5.3。release/reference/html/#events-consumment
  • 根据需要使用KafkalistenerEndpointRegistry启动和停止容器(通过ID)。
 类似资料:
  • 我以前从没用过Kafka。我有两个测试程序访问本地Kafka实例:一个读卡器和一个写卡器。我试图调整我的制作人、消费者和Kafka服务器设置,以获得特定的行为。 我的作者: 我的本地kafka上存在三个主题:政策管理器-100、政策管理器-200、政策管理器-300。它们每个都只有1个分区,以确保所有消息都按kafka收到它们的时间进行排序。我的作者将随机选择其中一个主题并发布一条由一个数字组成的

  • 如何在apache/kafka中使用regex消费所有主题?我尝试了上面的代码,但不起作用。

  • 我正在用java编写一个简单的Kafka使用者,它被配置为读取多个主题。目前,让我们假设两个主题(topic1和Topic2),并为两个主题设置一个分区。 Kafka用户从topic1和Topic2读取的顺序是什么。如果这两个主题都有,假设已经发布了100条消息。 使用者首先从topic1读取所有消息,然后再从topic2读取? 用户按时间顺序阅读,将来自两个主题的消息混合在一起? 我看了Kafk

  • 我有一个spring boot项目,我是spring-kafka来连接底层的kafka事件枢纽。 我不得不在同一节消费者课上听2个不同的话题。我有两种方法可以这样做。 一个是要有两个这样的Kafka听众: 另一种方法是在同一个kafkaListener中有两个主题,如下所示 ===================edit===============application.yml中的Kafka属性

  • 我的问题与单个消费者从多个话题消费有关。假设所有主题都加载了1M个记录,一个使用者必须处理这些记录。它将按照什么顺序从主题中读取(我的意思是首先读取哪个主题/分区,等等) Kafka内部资料的任何链接会有帮助吗?

  • 有人能帮我弄清楚这件事吗。 谢了!