Kinesis max shard читает/сек и несколько потребителей

60
6

Поэтому у меня есть поток AWS Kinesis, где я публикую события для нескольких потребителей. Для большинства из них важно получать горячие данные, а это значит, что многие из них будут, возможно, опросить и прочитать последние данные одновременно. Согласно документации AWS, увеличение количества осколков увеличит уровень параллелизма, а количество чтений/сек может быть не более 5 с/с на каждый осколок. Мой вопрос: может ли (и как?) Добавить больше осколков помочь ситуации, когда все мои потребители обновлены и пытаются читать новые входящие данные из одного и того же осколка? Похоже, что это ограничение чтения в секунду автоматически вводит ограничение на количество потребителей, которых вы можете иметь (по крайней мере, когда их нужно постоянно обновлять), или я что-то упускаю?

спросил(а) 2017-05-23T16:51:00+03:00 3 года, 8 месяцев назад
1
Решение
83

Другая альтернативная архитектура - это то, что у вас есть одно потребительское приложение kinesis, которое выталкивает сообщения из потока кинезий в тему SNS. Конечно, если ваши потребители должны "оглядываться" на прошлые сообщения для обработки, это может не сработать, а просто хотело выбросить это в качестве опции.

ответил(а) 2017-10-15T23:20:00+03:00 3 года, 3 месяца назад
73

Да ты прав.

Потребители полагают, что вы будете использовать Amazon Kinesis Client (или KCL: amazon-kinesis-client) как API-помощник; и, пожалуйста, посмотрите, что в потребительской логике есть параметр " idleTimeBetweenReadsInMillis ". Это определяет, насколько ваше приложение будет опросить поток (чем ниже это значение, тем чаще ваши опросы будут опроса).

Если ваш поток содержит 1 осколок или 100 осколков, вы не можете сделать более 5 запросов " GetRecords " в секунду для каждого осколка. То есть;

    Если у вас есть 1 приложение, вы можете сделать интервал опроса 200 мс в лучшем случае (теоретически). Если у вас есть 2 приложения, это может быть минимум 400 мс. Если у вас 3 приложения, это может быть минимум 600 мс. Или с 3-мя приложениями, два из них могут опросить 1000 мс, а последний может опросить со скоростью 333 мс.

Вы также можете создать кластер Kafka для себя и сравнить их производительность. Кафка может дать более высокую пропускную способность.

См. Этот ответ для сравнения образцов между концепциями Кафки и Кинезиса: Кафка как смещение на Kinesis Stream?

ответил(а) 2017-05-23T20:20:00+03:00 3 года, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема