Может ли клиентская библиотека Amazon Kinesis использовать несколько потоков?

У меня есть быстрый вопрос. Может ли KCL потреблять данные из нескольких потоков? Стоит ли вам когда-либо настраивать несколько потоков для своего приложения или отдельный поток должен быть привязан к отдельному приложению? Мой конкретный вариант использования заключается в том, что мне нужно потреблять данные, производимые как из бэкэнда, так и из внешнего интерфейса. Один из них производит данные с гораздо большей скоростью, чем другой, и по этой причине думает, что они должны быть разделены на отдельные потоки для обработки. Есть ли способ использовать оба потока из одного процесса KCL или мне нужно настроить два? Спасибо за вашу помощь!


person ScottBouloutian    schedule 05.01.2016    source источник
comment
Почему бы просто не запустить несколько экземпляров Worker, каждый из которых настроен на получение из другого потока? Было бы намного проще, чем пытаться изменить одного Worker'а для извлечения из нескольких потоков.   -  person Krease    schedule 08.07.2016


Ответы (1)


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

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

Если вам нужно обмениваться информацией между потоками, вы можете использовать общие переменные состояния между ними, используя некоторую БД, такую ​​как DynamoDB или Redis.

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

person Guy    schedule 12.01.2016