Changes

Apache Kafka

532 bytes added, 20:51, 21 April 2019
Java consumer
==Java consumer==
 <source lang="java">props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "kafka:29092");props.put(ConsumerConfig.GROUP_ID_CONFIG, "KafkaExampleConsumer");props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIGA Java consumer-nek ugyan azokra a maven függőségekre van szüksége mint a producer-nek, LongDeserializer.class.getName());props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.classezrét ezeket itt nem ismételjük meg.getName());</source>   
<source lang="java">
import org.apache.kafka.clients.consumer.*;
</source>
A Kafka specifikus beállításokat szintén a Properties map-ben kell megadni, és megegyeznek a producer-nél bemutatott paraméterekkel.
<source lang="java">
props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "kafka:29092");
props.put(ConsumerConfig.GROUP_ID_CONFIG, "KafkaExampleConsumer");
props.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, LongDeserializer.class.getName());
props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName());
</source>
Fontos, hogy csak olyan deszerializátort használjunk, ami kompatibilis az üzenet fajtájával, vagyis olyat, ami kompatibilis a producer-nél használt serializátórral. Pl. egy JsonSerializer-el írt üzenetet ki lehet olvasni egy StringDeerializer-el is.
<source lang="java">
props.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName());