Производитель Kinesis, вставляющий один осколок, и потребитель получают дубликаты от других осколков. - PullRequest
0 голосов
/ 13 февраля 2019

My Kinesis Producer со случайным ключом раздела помещает запись в shard0.Я ожидаю прочитать его с осколка 0 у моего потребителя.

Что я наблюдаю, так это то, что для некоторых записей это не так:

Идеальный сценарий: введите 000000000002 и прочитайте 000000000002

2019-02-12 11:18:52.278  INFO 10152 --- [TaskExecutor-60] c.i.i.e.kinesis.KinesisProducer          : Put Result={ShardId: shardId-000000000002,SequenceNumber: 49592292474998443170974666693116643662109230963259080738,}
Shard: shardId-000000000002, PartitionKey: partitionKey-MTALK__22a5e920-014f-45b0-8d27-aa3f511d3738, SequenceNumber: 49592292474998443170974666693116643662109230963259080738

Наблюдение: введите 000000000000 и прочитайте 000000000002

Shard: shardId-000000000002, PartitionKey: partitionKey-MTALK__09241131-5f81-44fc-852f-7f6483b5e18b, SequenceNumber: 49592292458897305137635556784925437217617884560152854530

Кроме того, несмотря на правильную контрольную точку и Trim Horizon, я вижу, что при перезапуске потребителя те же сообщения снова используются -ОДИН КЛЮЧ ОТ РАЗДЕЛА ОТ РАЗЛИЧНЫХ ЧАСТЕЙ и ТОГО ЖЕ НОМЕР ПОСЛЕДОВАТЕЛЬНОСТИ.

Put Result={ShardId: shardId-000000000003,SequenceNumber: 49592278123331569911393613339504152562720511055896772658,}

Consumed as:

Shard: shardId-000000000002, PartitionKey: partitionKey-MTALK__3f1caefc-e072-4854-8cb8-f42af2cb67e2, SequenceNumber: 49592278123331569911393613339504152562720511055896772658
Shard: shardId-000000000003, PartitionKey: partitionKey-MTALK__3f1caefc-e072-4854-8cb8-f42af2cb67e2, SequenceNumber: 49592278123331569911393613339504152562720511055896772658
Shard: shardId-000000000003, PartitionKey: partitionKey-MTALK__3f1caefc-e072-4854-8cb8-f42af2cb67e2, SequenceNumber: 49592278123331569911393613339504152562720511055896772658
  1. Как может переключаться осколок?
  2. Как один и тот же ключ разделения может изменить осколок, если это MD5 и по модулю
  3. Почему дублирующее сообщение приходит несмотря на контрольную точку
...