java - Kafka 多个消费者监听多个主题

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

我们正在开发一个应用程序,我们希望在其中监听 Kafka 中的多个主题。所有主题都有一个分区。所有主题名称都有一个共同的前缀,例如“test-x”,“test-y”,因此我们可以使用 spring topicPattern 来实现它。

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

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

这里还有什么我们不明白的吗?提前致谢。

最佳答案

Kafka 将主题内的分区分配给消费者组(具有相同 group.id 的消费者)。由于您的主题只有分区,因此消费者组中只有一个消费者会收到消息。

关于java - Kafka 多个消费者监听多个主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49427649/

相关文章:

java - Spring PetClinic <spring :url . ...../> 非常url的编码

java - 如何在另一个 Activity 中调用方法

java - 反转 AutoCompleteTextView 建议顺序

java - 无法使用 Spring 4 和 Hibernate 4 创建与 Oracle 11g 的连接

java - CRUD Repository findById()返回值不同

java - 如何一次将记录转发到多个 Kafka Stream 子处理器?

spring-boot - 使用 Spring Boot 创建 Kafka 主题

go - 在 sarama-cluster 中模拟 NewConsumer

java - 正则表达式匹配 url 模式

java - 在 java 中使用 OpenGL ES 创建游戏