如何在多个消费者处读取相同的kafka消息

时间:2017-03-02 09:40:58

标签: apache-kafka kafka-consumer-api kafka-producer-api spring-kafka

我是Kakfa Spring集成的新手。我已经实现了Kafka消息发送和One Listener,它对我来说很好。但是我希望在两个地方听到同样的信息。谁能帮我。以下是我的代码。

 spring.kafka.bootstrap-servers=localhost:9092
spring.kafka.consumer.auto-commit-interval=100
spring.kafka.consumer.bootstrap-servers=localhost:9092
spring.kafka.consumer.enable-auto-commit=true
spring.kafka.consumer.group-id=sample-group


spring.kafka.producer.batch-size= 16384
spring.kafka.producer.bootstrap-servers=localhost:9092
spring.kafka.producer.retries= 0
spring.kafka.producer.buffer-memory=33554432

spring.kafka.template.default-topic=spring-topic

发件人代码:

public void testSimple() {
        System.out.println("Sending Topic Here");
        template.send("spring-topic", 0, "foo");
        template.flush();
    }

接收器:

@KafkaListener(id = "foo", topics = "spring-topic")
    public void listen1(String foo) {
        System.out.println("Got Notification Here");
        this.latch1.countDown();
    }

可以帮助我如何在不同的地方阅读相同的信息。

1 个答案:

答案 0 :(得分:7)

如果您更改此行中的使用者群组:

spring.kafka.consumer.group-id=sample-group

到第二个消费者中的其他东西,它也将获得所有消息。

This article更多地解释了消费者群体,值得一读。