Что такое осколки в потоке данных Kinesis? - PullRequest
0 голосов
/ 09 июня 2019

Что такое осколки в потоке данных Kinesis и ключе раздела. Я читаю документы AWS, но не понимаю. Может кто-нибудь объяснить это простыми словами?

1 Ответ

2 голосов
/ 10 июня 2019

С Терминология и концепции потоков данных Amazon Kinesis - Потоки данных Amazon Kinesis :

A shard - это уникально идентифицированная последовательность записей данных в потоке. Поток состоит из одного или нескольких фрагментов, каждый из которых обеспечивает фиксированную единицу емкости. Каждый сегмент может поддерживать до 5 транзакций в секунду для операций чтения, до максимальной общей скорости чтения данных 2 МБ в секунду и до 1000 записей в секунду для операций записи, вплоть до максимальной общей скорости записи данных 1 МБ в секунду ( включая ключи разделов). Объем данных вашего потока зависит от количества сегментов, которые вы указываете для потока. Общая емкость потока - это сумма мощностей его осколков.

Итак, осколок имеет две цели:

  • Определенное количество пропускной способности / пропускной способности
  • Упорядоченный список сообщений

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

Однако, если сообщения нужно только заказать для определенной подсети сообщений , они могут быть отправлены в отдельные сегменты. Например, несколько строк в банке, где каждая строка обслуживается по порядку. Или подумайте об автобусе, отправляющем GPS-координаты. Каждая шина отправляет сообщения только одному осколку. Шард может содержать сообщения от нескольких шин, но каждая шина отправляет только один шард. Таким образом, при обработке сообщений от этого сегмента все сообщения с определенной шины обрабатываются по порядку.

Это управляется с помощью ключа раздела , который идентифицирует источник. Ключ раздела хэшируется и присваивается шарду. Таким образом, все сообщения с одним и тем же ключом раздела будут отправлены в один и тот же фрагмент.

На сервере имеется , как правило, один рабочий на каждый шард , который обрабатывает сообщения по порядку от этого шарда.

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

...