Поддержание порядка с помощью Amazon Kinesis со скоростью не менее 1000 сообщений в секунду
Я пытаюсь отправить тысячи сообщений в последовательности, используя Amazon Kinesis, но сообщения, получаемые пользователем Kinesis, не в последовательности. Вещи, которые я пробовал:
- Используемый
putRecord()
метод для отправки с SequenceNumberForOrdering. С этим достигается упорядоченная последовательность, но пропускная способность очень мала. - Используемый
putRecords
Способ отправки, но не удачный. - Использовал KCL + Amazon API потребителя.
1 ответ
Кинезис поддерживает последовательность внутри осколков, а не через все осколки в потоке. Я предполагаю, что у вас в потоке более 1 осколка и, следовательно, вы наблюдаете прочитанные записи не по порядку. (Вы также можете быстро проверить это, повторив #2 с одним осколком в вашем потоке.)
Цитата отсюда:
обратите внимание, что порядковые номера записи (RSN) не отслеживаются глобально в потоке, а вместо этого отслеживаются только для каждого сегмента.