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

与多个主题绑定的Spring cloud stream kafka消费者

章承基
2023-03-14


我想配置一个将绑定到多个主题的使用者应用程序(将在一个JVM上运行)。
使用者应用程序中的每个“consume”(假设我有两个主题要侦听)方法将使用@StreamListener注释设置,并链接到特定的主题。
我还将在不同的使用者组中配置每个使用者。

spring.cloud.stream.bindings.<consumer>.group=<group name>

在这样的配置中,使用者应用程序将如何表现?
消息将一个接一个地发送?
我需要在不同的线程中实现每个listner?
这种方法是否有效?

Kafka版本0.8.2.1(spotify图像)
Spring-cloud-stram Brixton.发布
谢谢。

共有1个答案

袁永贞
2023-03-14

消费者应用程序在这样的配置中将如何表现?信息会一个接一个地来?我需要在不同的线程中实现每个listner?

在Brixton版本中,每个@StreamListener方法将使用来自不同线程的消息(您将看到每个绑定的threads:FetchTask from KafkaMessageListenerContainer)。因此,消息消费是在这些线程之间,这些线程对应于消费来自各个主题的消息。

 类似资料:
  • 我们正在开发一个应用程序,我们想听Kafka中不止一个主题。所有主题都有一个分区。所有主题名称都有一个公共的前缀,例如“test-x”、“test-y”,所以我们可以对它使用spring。 我们希望编写一个java spring使用者,它使用模式监听所有主题。我们的想法是,我们可以运行同一个消费者(属于同一个组)的多个实例,Kafka将为不同的消费者分发来自不同主题的消息。 然而,这似乎并不奏效。

  • 我有一个主题列表(目前是10个),其大小可以在未来增加。我知道我们可以产生多个线程(每个主题)来消耗每个主题,但在我的例子中,如果主题的数量增加,那么消耗主题的线程数量也会增加,这是我不希望的,因为主题不会太频繁地获取数据,所以线程将是理想的。 有没有办法让单个消费者从所有话题中消费?如果是的话,我们怎样才能做到呢?另外,Kafka将如何维护抵消?请建议答案。

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

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

  • 问题内容: 我有一个主题列表(目前为10个),其规模将来可能会增加。我知道我们可以在每个主题中产生多个线程(每个主题)使用,但是就我而言,如果主题数量增加,那么从主题中使用的线程数量就会增加,这是我不希望的,因为主题不是太频繁地获取数据,因此线程将处于理想状态。 有没有办法让一个消费者从所有主题中消费?如果是,那我们如何实现呢?另外,Kafka将如何维护偏移量?请提出答案。 问题答案: 我们可以使

  • 然而,当在我的环境中测试此示例时,我得到了一个异常。