Есть ли способ прочитать из БД Dynamo поток с фиксированным количеством рабочих и аренды без каких-либо проблем - PullRequest
0 голосов
/ 10 июня 2018

Я постоянно публикую данные в DynamoDB, для которого включен поток.Я читаю этот поток, используя DynamoDB apadter KCL.

Я использую 1 работника KCL с 5 арендными договорами.На момент создания в моей таблице Dynamo было 1 раздел (1 RCU и 999WCU).Когда я продолжаю публиковать данные в динамо, количество разделов будет расти, а количество активных шардов тоже.Чтение в порядке до тех пор, пока число активных шардов не станет равным 5. Как только оно пересечет 5, KCL не сможет прочитать с одного из шардов (tps сбрасывается).

Есть ли какие-либо конфигурации / параметры, которыеЯ могу установить, что позволит мне читать с растущих осколков, используя фиксированный номер аренды?

1 Ответ

0 голосов
/ 13 июня 2018

Вы ищете свойство maxLeasesPerWorker .

Из Javadoc:

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

Обязательно обратите внимание натакже предупреждение в javadoc:

Обратите внимание, что установка низкого значения может привести к потере данных (например, если не хватает рабочих для выполнения прогресса на всех шардах).При установке значения для этого свойства необходимо обеспечить наличие достаточного количества рабочих для обработки осколков, а также рассмотреть возможность повторного выделения в будущем, дочерних осколков, которые могут быть заблокированы на родительских осколках, некоторые работники становятся нездоровыми и т. Д.

...