Renamed Inser position to patition key

This commit is contained in:
Amol Gote 2023-10-15 18:42:20 -04:00
parent b94d5a1f8a
commit 6d4e6886b3
9 changed files with 18 additions and 22 deletions

View File

@ -42,7 +42,7 @@ public class ExtSeqWithTimeWindowConsumer {
private static void processBuffer(List<Message> buffer) { private static void processBuffer(List<Message> buffer) {
Collections.sort(buffer); Collections.sort(buffer);
buffer.forEach(message -> { buffer.forEach(message -> {
System.out.println("Processing message with Insert Position: " + message.getInsertPosition() + ", Message Id: " + message.getMessageId()); System.out.println("Processing message with Insert Position: " + message.getPartitionKey() + ", Message Id: " + message.getMessageId());
}); });
buffer.clear(); buffer.clear();
} }

View File

@ -8,8 +8,6 @@ import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.common.serialization.StringSerializer; import org.apache.kafka.common.serialization.StringSerializer;
import java.util.Properties; import java.util.Properties;
import java.util.Random;
import java.util.concurrent.atomic.AtomicLong;
public class ExtSeqWithTimeWindowProducer { public class ExtSeqWithTimeWindowProducer {
public static void main(String[] args) { public static void main(String[] args) {
@ -22,9 +20,9 @@ public class ExtSeqWithTimeWindowProducer {
for (long insertPosition = 1; insertPosition <= 10 ; insertPosition++) { for (long insertPosition = 1; insertPosition <= 10 ; insertPosition++) {
long messageId = Message.getRandomMessageId(); long messageId = Message.getRandomMessageId();
String key = "Key-" + insertPosition; String key = "Key-" + insertPosition;
Message message = new Message(insertPosition, messageId); Message message = new Message(key, messageId);
producer.send(new ProducerRecord<>("multi_partition_topic", key, message)); producer.send(new ProducerRecord<>("multi_partition_topic", key, message));
System.out.println("Insert Position: " + message.getInsertPosition() + ", Message Id: " + message.getMessageId()); System.out.println("Insert Position: " + message.getPartitionKey() + ", Message Id: " + message.getMessageId());
} }
producer.close(); producer.close();
System.out.println("ExternalSequencingProducer Completed."); System.out.println("ExternalSequencingProducer Completed.");

View File

@ -29,7 +29,7 @@ public class MultiPartitionConsumer {
records.forEach(record -> { records.forEach(record -> {
Message message = record.value(); Message message = record.value();
if (message != null) { if (message != null) {
System.out.println("Process message with Insert Position: " + message.getInsertPosition() + ", Message Id: " + message.getMessageId()); System.out.println("Process message with Insert Position: " + message.getPartitionKey() + ", Message Id: " + message.getMessageId());
} }
}); });
} }

View File

@ -20,9 +20,9 @@ public class MultiPartitionProducer {
for (long insertPosition = 1; insertPosition <= 10 ; insertPosition++) { for (long insertPosition = 1; insertPosition <= 10 ; insertPosition++) {
long messageId = Message.getRandomMessageId(); long messageId = Message.getRandomMessageId();
String key = "Key-" + insertPosition; String key = "Key-" + insertPosition;
Message message = new Message(insertPosition, messageId); Message message = new Message(key, messageId);
producer.send(new ProducerRecord<>("multi_partition_topic", key, message)); producer.send(new ProducerRecord<>("multi_partition_topic", key, message));
System.out.println("Insert Position: " + message.getInsertPosition() + ", Message Id: " + message.getMessageId()); System.out.println("Insert Position: " + message.getPartitionKey() + ", Message Id: " + message.getMessageId());
} }
producer.close(); producer.close();
System.out.println("SinglePartitionProducer Completed."); System.out.println("SinglePartitionProducer Completed.");

View File

@ -7,7 +7,6 @@ import org.apache.kafka.clients.consumer.ConsumerConfig;
import org.apache.kafka.clients.consumer.ConsumerRecords; import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.clients.consumer.KafkaConsumer; import org.apache.kafka.clients.consumer.KafkaConsumer;
import org.apache.kafka.common.serialization.StringDeserializer; import org.apache.kafka.common.serialization.StringDeserializer;
import org.apache.kafka.common.serialization.StringSerializer;
import java.time.Duration; import java.time.Duration;
import java.util.Collections; import java.util.Collections;
@ -30,7 +29,7 @@ public class SinglePartitionConsumer {
ConsumerRecords<String, Message> records = consumer.poll(TIMEOUT_WAIT_FOR_MESSAGES); ConsumerRecords<String, Message> records = consumer.poll(TIMEOUT_WAIT_FOR_MESSAGES);
records.forEach(record -> { records.forEach(record -> {
Message message = record.value(); Message message = record.value();
System.out.println("Process message with Insert Position: " + message.getInsertPosition() + ", Message Id: " + message.getMessageId()); System.out.println("Process message with Insert Position: " + message.getPartitionKey() + ", Message Id: " + message.getMessageId());
}); });
} }
} }

View File

@ -8,7 +8,6 @@ import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.common.serialization.StringSerializer; import org.apache.kafka.common.serialization.StringSerializer;
import java.util.Properties; import java.util.Properties;
import java.util.Random;
public class SinglePartitionProducer { public class SinglePartitionProducer {
public static void main(String[] args) { public static void main(String[] args) {
@ -21,9 +20,9 @@ public class SinglePartitionProducer {
for (long insertPosition = 1; insertPosition <= 10 ; insertPosition++) { for (long insertPosition = 1; insertPosition <= 10 ; insertPosition++) {
long messageId = Message.getRandomMessageId(); long messageId = Message.getRandomMessageId();
String key = "Key-" + insertPosition; String key = "Key-" + insertPosition;
Message message = new Message(insertPosition, messageId); Message message = new Message(key, messageId);
producer.send(new ProducerRecord<>("single_partition_topic", key, message)); producer.send(new ProducerRecord<>("single_partition_topic", key, message));
System.out.println("Insert Position: " + message.getInsertPosition() + ", Message Id: " + message.getMessageId()); System.out.println("Insert Position: " + message.getPartitionKey() + ", Message Id: " + message.getMessageId());
} }
producer.close(); producer.close();
System.out.println("SinglePartitionProducer Completed."); System.out.println("SinglePartitionProducer Completed.");

View File

@ -1,11 +1,11 @@
package com.baeldung.kafka.message.ordering.payload; package com.baeldung.kafka.message.ordering.payload;
import javax.swing.*; import java.util.Objects;
import java.util.Random; import java.util.Random;
import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.ThreadLocalRandom;
public class Message implements Comparable<Message> { public class Message implements Comparable<Message> {
private long insertPosition; private String partitionKey;
private long messageId; private long messageId;
public Message(){ public Message(){
@ -13,13 +13,13 @@ public class Message implements Comparable<Message> {
} }
//Required for Kafka Serialization and Deserialization //Required for Kafka Serialization and Deserialization
public Message(long insertPosition, long messageId) { public Message(String partitionKey, long messageId) {
this.insertPosition = insertPosition; this.partitionKey = partitionKey;
this.messageId = messageId; this.messageId = messageId;
} }
public long getInsertPosition() { public String getPartitionKey() {
return insertPosition; return partitionKey;
} }
public long getMessageId() { public long getMessageId() {
@ -40,7 +40,7 @@ public class Message implements Comparable<Message> {
return false; return false;
} }
Message message = (Message) obj; Message message = (Message) obj;
return this.messageId == message.getMessageId() && this.insertPosition == message.getInsertPosition(); return this.messageId == message.getMessageId() && Objects.equals(this.partitionKey, message.getPartitionKey());
} }
public static long getRandomMessageId() { public static long getRandomMessageId() {

View File

@ -90,7 +90,7 @@ public class MultiplePartitionTest {
for (long insertPosition = 1; insertPosition <= 10 ; insertPosition++) { for (long insertPosition = 1; insertPosition <= 10 ; insertPosition++) {
long messageId = Message.getRandomMessageId(); long messageId = Message.getRandomMessageId();
String key = "Key-" + insertPosition; String key = "Key-" + insertPosition;
Message message = new Message(insertPosition, messageId); Message message = new Message(key, messageId);
Future<RecordMetadata> future = producer.send(new ProducerRecord<>(TOPIC, key, message)); Future<RecordMetadata> future = producer.send(new ProducerRecord<>(TOPIC, key, message));
sentMessageList.add(message); sentMessageList.add(message);
RecordMetadata metadata = future.get(); RecordMetadata metadata = future.get();

View File

@ -92,7 +92,7 @@ public class SinglePartitionTest {
for (long insertPosition = 1; insertPosition <= 10 ; insertPosition++) { for (long insertPosition = 1; insertPosition <= 10 ; insertPosition++) {
long messageId = Message.getRandomMessageId(); long messageId = Message.getRandomMessageId();
String key = "Key-" + insertPosition; String key = "Key-" + insertPosition;
Message message = new Message(insertPosition, messageId); Message message = new Message(key, messageId);
ProducerRecord<String, Message> producerRecord = new ProducerRecord<>(TOPIC, key, message); ProducerRecord<String, Message> producerRecord = new ProducerRecord<>(TOPIC, key, message);
Future<RecordMetadata> future = producer.send(producerRecord); Future<RecordMetadata> future = producer.send(producerRecord);
sentMessageList.add(message); sentMessageList.add(message);