Middle — Middle+
How to ensure the sequence of receiving Consumer messages according to their sending in Kafka?
sobes.tech AI
Answer from AI
In Kafka, message order is guaranteed only within a single partition. To ensure that the Consumer receives messages in the same order they were sent, it is necessary to:
- Use the same message key when sending so that all messages with this key go to the same partition.
- Configure the Consumer to read messages from the partition sequentially.
- Use one Consumer per partition, as multiple Consumers in the same group can read different partitions in parallel, which will violate the global order.
Example of Producer configuration with a key:
ProducerRecord<String, String> record = new ProducerRecord<>("topic", "key", "message");
producer.send(record);
Thus, messages with the same key will go to one partition and will be read by the Consumer in the same order.