Renamed Inser position to patition key
This commit is contained in:
parent
b94d5a1f8a
commit
6d4e6886b3
@ -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();
|
||||||
}
|
}
|
||||||
|
@ -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.");
|
||||||
|
@ -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());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -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.");
|
||||||
|
@ -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());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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.");
|
||||||
|
@ -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() {
|
||||||
|
@ -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();
|
||||||
|
@ -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);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user