X-Git-Url: http://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fkafka%2FApplication.java;h=b304fa9ab1be89749ac61b0d539ab43af0473008;hb=1c20fcc1e9ee87b0727b134472832b8b27e9675f;hp=dda9b11c4102328a94374ca253b17b2d11b2209f;hpb=e7dee76bfcdcac440352a226409ab9047275aa72;p=demos%2Fkafka%2Ftraining diff --git a/src/main/java/de/juplo/kafka/Application.java b/src/main/java/de/juplo/kafka/Application.java index dda9b11..b304fa9 100644 --- a/src/main/java/de/juplo/kafka/Application.java +++ b/src/main/java/de/juplo/kafka/Application.java @@ -10,77 +10,35 @@ import org.springframework.kafka.core.KafkaTemplate; import org.springframework.kafka.support.SendResult; import org.springframework.util.concurrent.ListenableFuture; -import java.util.List; - @Slf4j @SpringBootApplication public class Application implements ApplicationRunner { - public final static String ARG_NUM = "num"; - @Autowired KafkaTemplate kafkaTemplate; - - void send(String key, String value) - { - ListenableFuture> listenableFuture = - kafkaTemplate.sendDefault(key, value); - - listenableFuture.addCallback( - result -> log.debug( - "Sent {}={} to partition={}, offset={}", - result.getProducerRecord().key(), - result.getProducerRecord().value(), - result.getRecordMetadata().partition(), - result.getRecordMetadata().offset()), - e -> log.error("ERROR sendig message", e)); - } - @Override public void run(ApplicationArguments args) { - int num = 10; - - if (args.containsOption(ARG_NUM)) - { - List numArgs = args.getOptionValues(ARG_NUM); - if (numArgs.size() > 1) - { - log.error( - "Only one occurence of argument {} is allowed, but found: {}", - ARG_NUM, - numArgs.size()); - return; - } - - try - { - num = Integer.parseInt(numArgs.get(0)); - } - catch (NumberFormatException e) - { - log.error("{} is not a number: {}", numArgs.get(0), e.getMessage()); - } - } - - for (int i = 0; i < num; i++) + for (int i = 0; i < 100; i++) { - send(Long.toString(i%10), Long.toString(i)); - try - { - Thread.sleep(500); - } - catch (InterruptedException e) - { - log.info("Interrupted after sending {} messages", i); - return; - } + // tag::callback[] + ListenableFuture> listenableFuture = + kafkaTemplate.send("test", Long.toString(i%10), Long.toString(i)); + + listenableFuture.addCallback( + result -> log.info( + "Sent {}={} to partition={}, offset={}", + result.getProducerRecord().key(), + result.getProducerRecord().value(), + result.getRecordMetadata().partition(), + result.getRecordMetadata().offset()), + e -> log.error("ERROR sendig message", e)); + // end::callback[] } } - public static void main(String[] args) { SpringApplication.run(Application.class, args);