Можно ли читать поток Kinesis по требованию без задержки - PullRequest
0 голосов
/ 23 сентября 2018

У меня следующий вариант использования

  • У меня есть поток kinesis, содержащий данные пользователя.
  • Я хочу прочитать поток kinesis на основе действий пользователя.
  • Фильтровать записиосновываясь на пользовательском вводе, продолжайте фильтрацию в течение некоторого периода времени, скажем, 5 минут.
  • Продолжайте возвращать эти отфильтрованные пакеты пользователю в течение 5 минут.
  • После истечения времени ожидания прекратите чтение kinesis

Вопрос: Есть ли способ чтения кинезиса по требованию, без каких-либо задержек, используя KCL или любую другую библиотеку.Скажем, я могу настроить KCL jvm-приложения, которые в данный момент не читают, всякий раз, когда это вызывает действие пользователя, просто начните читать.Аналогичным образом прекратите чтение после некоторого времени ожидания или дальнейших действий пользователя.

Я могу написать логику, которая может сделать это, но хотела бы знать, есть ли что-то встроенное в KCL.

1 Ответ

0 голосов
/ 14 февраля 2019

KCL сделает это за вас - пока приложение KCL работает, оно будет непрерывно читать из потока.Не имеет значения, если большую часть времени ваш поток не возвращает никаких данных - он просто будет продолжать работать и ничего не делать, пока не появятся данные, после чего ваш код обработки начнет работать.

Вы можете настроить время ожиданияпринимает, когда нет записей с KinesisClientLibConfiguration.idleTimeBetweenReadsInMillis - по умолчанию 1 секунда.Здесь есть множество параметров конфигурации для точной настройки поведения по мере необходимости.

Теперь, если ваши потоки будут пустыми большую часть времени, может быть более рентабельным, если использовать AWS Lambda дляобрабатывать ваши потоки , которые будут обрабатывать ваши записи по требованию без необходимости запуска (и оплаты) оборудования для непрерывного выполнения операций чтения из потока.

...