2015-03-23 2 views
1

Учитывая один поток с несколькими осколками, я предполагаю, что каждое приложение через библиотеку клиентов Kinesis будет поддерживать свою контрольную точку в записях, обработанных из этого потока. Однако мне трудно найти, если это так, прочитав документацию по AWS.Является ли контрольная точка KCL уникальной для приложения/осколка или всего осколка?

Мой вопрос: если бы у меня было два приложения Kinesis, подключенные к одному потоку с помощью KCL, они бы разделили одну и ту же контрольную точку для обработанных записей? Могут ли они обрабатывать записи независимо друг от друга?

ответ

0

Для обработки событий масштабируемых и простых, то лучше держать следующее:

экземпляр
  • Каждый работник обрабатывает один осколок
  • Каждый работник логика реализуется в другом приложении потребительского

Если вы придерживаетесь этих лучших практик, это превратит вашу обработку событий в более гибкую и масштабируемую.

Если вы используете экземпляр рабочего экземпляра с коэффициентом shard до 1: 1, его легче масштабировать, так как вы можете просто добавить осколки (а именно, разделить существующие осколки и удвоить емкость вашего черепа), и каждый экземпляр рабочего процесса обработает только такое же количество событий (например, 1000 событий в секунду). KCL добавит рабочий экземпляр к каждому из новых осколков.

Вы также можете изменять один тип логики, не изменяя другую логику. Например, если вы хотите «переигрывать» события со слегка модифицированной логикой для обработки, остальная логика не должна повторять обработку. Самое простое разделение логики - это «медленная» обработка (например, для S3 и COPY для Redshift) и «Быстрая» обработка (например, переключение событий в реальном времени на обновление счетчиков или определение мошенничества для немедленной блокировки). KCL добавит приложение для каждого типа такой обработки.

Короче говоря, KCL поможет вам сохранить статус вашей обработки (контрольных точек) для каждого из ваших приложений и каждого из ваших осколков. Если у вас есть, например, 3 логики потребителей и 8 черепов в вашем потоке, у вас будет 3 * 8 = 24 контрольных точки.

+0

Спасибо - последний абзац отвечает на мой вопрос. – roo