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

Kafka多个消费者倾听多个主题

钱志强
2023-03-14

我们正在开发一个应用程序,我们想听Kafka中不止一个主题。所有主题都有一个分区。所有主题名称都有一个公共的前缀,例如“test-x”、“test-y”,所以我们可以对它使用springTopicPattern

我们希望编写一个java spring使用者,它使用regexp模式监听所有主题。我们的想法是,我们可以运行同一个消费者(属于同一个组)的多个实例,Kafka将为不同的消费者分发来自不同主题的消息。

然而,这似乎并不奏效。即使我们运行使用者的多个实例,也只有一个使用者从所有主题获取消息。如果我们在主题中创建多个分区,那么它就可以工作,但这是我们没有的。

共有1个答案

慕和惬
2023-03-14

Kafka在一个使用者组(具有相同group.id的使用者)中分配一个主题中的分区。因为您的主题只有分区,所以使用者组中只有一个使用者会收到消息。

 类似资料:
  • 当有多个消费者时,我无法听到kafka主题(我的案例2主题)。在下面的例子中,我有2个消费者工厂,它将接受2个不同的JSON消息(一个是用户类型,另一个是事件类型)。这两条消息都发布到不同的主题。在这里,当我试图从topic1访问事件消息时,我无法访问,但我可以访问用户主题消息。 例如: 我的主要应用如下: 我的需要是首先收听事件主题并对消息进行一些按摩,然后向其发送用户主题,我有另一种方法将收听

  • 有人知道一个听众是否可以听下面这样的多个话题吗?我知道“主题1”很管用,如果我想添加其他主题呢?你能给我举个例子吗?谢谢你的帮助! 或者

  • 我想为几个主题创建一个kafka消费者。consumer的方法构造函数允许我在订阅中传输主题列表的参数,如下所示: 之后,我想轮询记录从Kafka流每3秒并处理它们,但我想知道什么是这个消费者-如何将不同主题的记录轮询-首先一个主题,然后另一个,或并行。会不会一个消息量大的主题会一直处理,另一个消息量小的主题会等待?

  • 有一个基本示例,它对1个消费者起作用。它接收消息。但是添加一个额外的消费者将被忽略。 consumer2的“22”事件从未引发问题。如果我使用命令行工具检查该主题,则该主题的数据存在

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

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