1

私はKakfa Springの統合には非常に新しいです。私はKafkaのメッセージ送信とOne Listenerを実装しました。それは私のためにうまくいきます。しかし、私はListenerと同じメッセージを2つの場所に送りたい。誰でも私を助けることができます。以下は私のコードです。複数のコンシューマーで同じカフカメッセージを読む方法

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(); 
    } 

は、いずれかが別の場所で同じメッセージを読む方法を手伝ってくれる。

答えて

5

あなたはこの行のコンシューマ・グループに変更した場合:二消費者で何か他のものに

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

をそれは同様にすべてのメッセージを取得します。

This articleは、消費者グループについてもう少し説明しており、読んでおく価値があります。

関連する問題