Edi,

Looking at your config again, you’ll want to also ensure that on the Publisher, 
you set the partition to `${kafka.partition}` so that it goes to the same 
partition on the destination system. You’ll also went to ensure that you set 
“Failure Strategy” to “Rollback” - otherwise any failure would route to 
‘failure’ relationship and change the ordering. You’ll also need to limit the 
concurrent tasks on the publisher to 1 concurrent task, to ensure that you’re 
not sending multiple FlowFiles out of order.

Thanks
-Mark


On Dec 15, 2023, at 2:26 AM, edi mari <edim2...@gmail.com> wrote:

Hi Mark,
I tried the combination of FIFO and setting the back pressure to 10k, but it 
didn't preserve the order.

Thanks
Edi

On Wed, Dec 13, 2023 at 3:47 PM Mark Payne 
<marka...@hotmail.com<mailto:marka...@hotmail.com>> wrote:
Hey Edi,

By default, nifi doesn’t preserve ordering but you can have it do so by 
updating the connection’s configuration and adding the First In First Out 
Prioritizer.

Also of note you will want to keep the backpressure threshold set to 10,000 
objects rather than increasing it as shown in the image.

Thanks
Mark


Sent from my iPhone

On Dec 13, 2023, at 8:19 AM, edi mari 
<edim2...@gmail.com<mailto:edim2...@gmail.com>> wrote:



Hello ,
I'm using NIFI v1.20.0 to replicate 250 million messages between Kafka topics.
The problem is that NIFI replicates messages in a non-sequential order, 
resulting in the destination topic storing messages differently than the source 
topic.

for example
source topic - partition 0
offset:5 key:a value:v1
offset:6 key:a value:v2
offset:7 key:a value:v3

destination topic - partition 0
offset:5 key:a value:v2
offset:6 key:a value:v1
offset:7 key:a value:v3

The topics are configured with a cleanup policy: compact.

I'm using ConsumeKafka and PublishKafka processors to replicate topics.

<image.png>

<image.png>

<image.png>

<image.png>

<image.png>

Thanks
Edi

Reply via email to