Kinesis Data Streams (продюссеры, консюмеры) Flashcards

1
Q

Что может быть продюссером сообщений?

A

Приложения, использующие SDK, KPL, Kinesis Agent

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Какую API операцию вызывает продюссер в Kinesis?

A

PutRecord API

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Producer’ы могут слать данные в Kinesis с ограничениями. Каковы эти лимиты?

A

1 MB/sec per shard, 1_000 records/sec per shard

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Если шардов 6, то всего (overall) в Kinesis можно слать до …

A

до 6 MB/sec или до 6_000 records/sec

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

В чём отличие batching операции в Kinesis и в SQS?

A

Kinesis может использовать батчинг для отправки сообщений (PutRecord API). А SQS - только для консюминга.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Что такое ProvisionedThroughputExceed?

A

ошибка, которую мы получим, если превысим write-rate (лимит отправки сообщений).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Как справиться с ProvisionedThroughputExceed?

A

Есть три способа. Выровнять распределение Partition Ключей (high distribution). Использовать retry-механизм с exponential backoff’ом. Увеличить число шардов (scale shards)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Что может быть консюмером сообщений?

A

Приложения, использующие SDK, KCL, Lambda, Kinesis Data Firehose, Kinesis Data Analytics

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Какую API операцию вызывает консюмер в Kinesis?

A

GetRecord API или SubscribeToShard API

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

В чём отличие GetRecord API и SubscribeToShard API?

A

При GetRecord API консюмер стягивает (poll) рекорды из Шарда. При SubscribeToShard API Шард пушит (push) рекорды в консюмер.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Какие бывают Consumer Modes?

A

SHARED (classic) moed и ENHANCED mode

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Как устроен SHARED (classic) Consumer Mode? Что на самом деле шарится между консюмерами?

A

На самом деле нужно акцентировать внимание на том, что между консюмерами шарится НЕ Шард, а именно Throughput Rate. Чем больше Consumer’ов читает один шард, тем меньше у каждого из них throughput limit.
Хотя, понятное дело, речь идёт о нескольких консюмерах, которые читают (шарят друг с другом) один и тот же Шард.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Каковы лимиты SHARED (classic) Consumer Mode? Какую API операцию используют?

A

2 MB/sec per shard на ВСЕХ Consumer’ов. GetRecord API.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Как устроен ENHANCED Consumer Mode?

A

Как и в SHARED (classic) режиме, несколько консюмеров получают данные из одного шарда. Но Throughout Limit НЕ делится между консюмерами. Он персональный у каждого из них. Этот режим более дорогой и более мощный.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Каковы лимиты ENHANCED Consumer Mode? Какую API операцию используют?

A

2 MB/sec per shard для КАЖДОГО Consumer’а. SubscribeToShard API.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

За счёт чего получается сделать независимый throughput у ENHANCED Consumer mode?

A

за счёт операции SubscribeToShard, которая заставляет Шард ПУШИТЬ сообщения в каждый консюмер, а НЕ наоборот.

17
Q

Kinesis Data Streams - это Push модель или Pull модель?

A

зависит от выбранного Consumer Mode. Если SHARED (classic) mode, то это GetRecords API и PULL модель с общим для ВСЕХ консюмеров throughput’ом. Если ENHANCED mode, то это Subscribe API и PUSH модель с индивидуальным для КАЖДОГО консюмера throughput’ом.

18
Q

Каков latency для SHARED (classic) mode? Каков для ENHANCED?

A

200мс, 70мс

19
Q

Каков лимит на количество GetRecord операций при SHARED (classic) mode?

A

5

20
Q

Каков лимит на количество читаемых данных при SHARED (classic) mode?

A

5 GetRecord операций умножаем на 2 MB за одну GetRecord операцию. Получаем 10 MB/s лимит. Или 10к записей в секунду лимит.

21
Q

Как выбрать Consumer Mode?

A

ENHANCED более дорогой, но максимально производительный. Push модель.

22
Q

Можно ли читать данные батчами в Kinesis? А писать? Каков лимит по батчам для консюминга?

A

Да, можно и читать и писать батчами. До 10-ти батчей на шард одновременно.