Я использую Java API для Kinesis Firehose и использую putRecordBatch(), где это возможно. Однако в моем приложении я иногда отправляю только одну запись и не могу позволить себе ждать больше или кэшировать ее в памяти.Kinesis Firehose putRecord vs putRecordBatch
Однако мой код немного сложнее, чем я хочу, потому что я отслеживаю количество успешных/неудачных попыток для каждой операции. putRecordBatch возвращает int, представляющий количество неудачных отправлений из набора отправленных записей, например. 2 из 4 сбоев, тогда как putRecord() либо преуспевает, либо генерирует исключение.
Я бы предпочел просто использовать putRecordBatch() всюду, но документ говорит, что использовать его только если у вас есть несколько записей для отправки.
Это может быть немного длинным выстрелом, но кто-нибудь здесь имеет опыт работы с этим API, в частности эти методы? Вы сделали то, что я созерцаю, и просто использовали putRecordBatch() повсюду, даже с набором записей из 1?
Спасибо @dizzyf, вот что я предположил, хотя, если у меня есть достаточно времени, я бы хотел проверить это в разумных пределах, чтобы убедиться, что при использовании putRecordBatch не существует отрицательного побочного эффекта. Для моего варианта использования я обычно посылаю по одной записи за один раз и иногда отправляю партии записей. Я бы оценил, что мое приложение делает последнее <10% времени. – matthewcummings516
@ matthewcummings516 Просто выполните следующие действия: FWIW, мы запустили putRecordBatch() за последний месяц + без отрицательных побочных эффектов. Никаких ошибок и производительности по-прежнему первоклассно. – dizzyf
Отлично, спасибо @dizzyf – matthewcummings516