/* * Copyright Strimzi authors. * License: Apache License 2.0 (see the file LICENSE or http://apache.org/licenses/LICENSE-2.0.html). */ import io.jaegertracing.Configuration; import io.opentracing.Tracer; import io.opentracing.contrib.kafka.TracingProducerInterceptor; import io.opentracing.util.GlobalTracer; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.ProducerConfig; import org.apache.kafka.clients.producer.ProducerRecord; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; import java.util.Properties; public class KafkaProducerExample { private static final Logger log = LogManager.getLogger(KafkaProducerExample.class); public static void main(String[] args) throws InterruptedException { KafkaProducerConfig config = KafkaProducerConfig.fromEnv(); Properties props = KafkaProducerConfig.createProperties(config); if (System.getenv("JAEGER_SERVICE_NAME") != null) { Tracer tracer = Configuration.fromEnv().getTracer(); GlobalTracer.registerIfAbsent(tracer); props.put(ProducerConfig.INTERCEPTOR_CLASSES_CONFIG, TracingProducerInterceptor.class.getName()); } KafkaProducer producer = new KafkaProducer(props); log.info("Sending {} messages ...", config.getMessageCount()); for (long i = 0; i < config.getMessageCount(); i++) { log.info("Sending messages \"" + config.getMessage() + " - {}\"", i); producer.send(new ProducerRecord(config.getTopic(), "\"" + config.getMessage() + " - " + i + "\"")); Thread.sleep(config.getDelay()); } log.info("{} messages sent ...", config.getMessageCount()); producer.close(); } }