2017-09-19 1 views
1

ich ein Thema Namen „user“, wo Benutzer-ID wird fallen gelassen werden, möchte ich von diesem Thema und Verfahren unter FunktionalitätenFrühling Kafka Listner | Lesen Sie gleichen Nachrichten

1. process user leave data 
2. process user salary data 

ich zwei Zuhörer haben wollen lesen, um das gleiche Thema zeigen und lesen die gleiche Benutzerkennung und initiiere die Verarbeitung parallel.

@KafkaListener(topics = "${kafka.topic.user}",group="abc")) 
      public void receive(String message) { 

        userService.processLeave(message); 
       } 

@KafkaListener(topics = "${kafka.topic.user}",group="abc1")) 
      public void receive1(String message) { 

        userService.processPayRoll(message); 
       } 

aber die ganze Zeit sehe ich, dass - processPayRoll aufgerufen wird immer die ganze Zeit.

was fehlt mir?

Antwort

1

Nun, sieht aus wie Sie die alte Spring Kafka-Version verwenden.

Leider steht group nicht mit group.id des Verbrauchers in Verbindung. Das ist containerGroup für Lifecycle Management.

Sie sollten verschiedene KafkaMessageListenerContainer basierend auf verschiedenen Consumer-Konfigurationen konfigurieren. Und dort werden Sie bereits verschiedene ConsumerConfig.GROUP_ID_CONFIG konfigurieren.

Die neueste Version hat die @KafkaListener Struktur wie:

/** 
* If provided, the listener container for this listener will be added to a bean 
* with this value as its name, of type {@code Collection<MessageListenerContainer>}. 
* This allows, for example, iteration over the collection to start/stop a subset 
* of containers. 
* @return the bean name for the group. 
*/ 
String containerGroup() default ""; 

/** 
* Override the {@code group.id} property for the consumer factory with this value 
* for this listener only. 
* @return the group id. 
* @since 1.3 
*/ 
String groupId() default ""; 

/** 
* When {@link #groupId() groupId} is not provided, use the {@link #id() id} (if 
* provided) as the {@code group.id} property for the consumer. Set to false, to use 
* the {@code group.id} from the consumer factory. 
* @return false to disable. 
* @since 1.3 
*/ 
boolean idIsGroup() default true; 
+0

Die 1.3.0.RC1 Release Candidate jetzt im Frühjahr Meilenstein Repo zur Verfügung steht; Die Veröffentlichung wird voraussichtlich gegen Ende des Monats sein. –