public class TrackProducer {
public static void main(String[] args) {
Properties props = new Properties();
props.setProperty("bootstrap.servers", "localhost:9092");
props.setProperty("key.serializer",
"org.apache.kafka.common.serialization.LongSerializer");
props.setProperty("value.serializer",
"org.apache.kafka.common.serialization.StringSerializer");
try(KafkaProducer<Long, String> producer = new
KafkaProducer<>(props);) {
ProducerRecord<Long, String> record = new
ProducerRecord<>("TrackTopic", 1L, "22.576N,88.3639E");
producer.send(record, new TrackCallback());
} catch (Exception e) {
e.printStackTrace();
}
}
}
mport org.apache.kafka.clients.producer.Callback;
import org.apache.kafka.clients.producer.RecordMetadata;
public class TrackCallback implements Callback {
@Override
public void onCompletion(RecordMetadata metadata, Exception e) {
System.out.println(metadata.partition());
System.out.println("Message sent successfully!");
}
}
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.clients.consumer.KafkaConsumer;
import java.time.Duration;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Properties;
public class TrackConsumer {
public static void main(String[] args) {
Properties props = new Properties();
props.setProperty("bootstrap.servers", "localhost:9092");
props.setProperty("key.deserializer",
"org.apache.kafka.common.serialization.LongDeserializer");
props.setProperty("value.deserializer",
"org.apache.kafka.common.serialization.StringDeserializer");
props.setProperty("group.id", "TrackGroup");
KafkaConsumer<Long, String> consumer = new
KafkaConsumer<>(props);
consumer.subscribe(Collections.singletonList("TrackTopic"));
ConsumerRecords<Long, String> records =
consumer.poll(Duration.ofSeconds(20));
records.forEach(tracking -> {
List<String> coordinates = Arrays.asList(tracking.value().split(","));
System.out.println("Truck ID: " + tracking.key());
System.out.println("Latitude: " + coordinates.get(0));
System.out.println("Longitude: " + coordinates.get(1));
});
consumer.close();
}
}